2012-05-10 11 views
7

Bueno, yo estoy tratando de implementar la funcionalidad básica de grabación de voz, comonotificar una vez que el audio se terminó de tocar

grabar, reproducir/pausa, detener

soy capaz de hacer todo de ellos, pero el único problema ¿Cómo puedo recibir una notificación una vez que el audio se termina jugando. Quiero decir, si reproduzco un archivo de audio, una vez que termina de reproducirse, quiero una notificación de que está detenido ahora.

Hasta ahora he utilizado

mPlayer.start() // to start the audio 

    mPlayer.stop(); // to stop the audio 

    mPlayer.pause(); //to pause the audio 

estoy tratando de averiguar cómo puedo saber una vez que el archivo de audio terminado automáticamente la reproducción

Respuesta

24

Puede utilizar el detector de finalización de la clase Media Player que hacer esta.

mediaPlayer.setOnCompletionListener(new OnCompletionListener() { 

      public void onCompletion(MediaPlayer mp) { 

       Log.i("Completion Listener","Song Complete"); 
       Toast.makeText(context, "Media Completed", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
+0

¿A dónde iría ese código? – Si8

+0

en su onCreate() –

+0

¿Funcionará esto para las canciones transmitidas? – Adam

5

Try para utilizar el código

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     > 
    <Button id="@+id/cmd_play" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Play the music !!!" 
     /> 
    </LinearLayout> 

código Reproductor Musical Actividad

public class MusicPlayer extends Activity { 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle icicle) { 
      super.onCreate(icicle); 
      setContentView(R.layout.main); 

      // Find the Button from the xml-file. 
      Button cmd_play = (Button)this.findViewById(R.id.cmd_play); 
      cmd_play.setOnClickListener(new OnClickListener(){ 

          @Override 
          public void onClick(View arg0) { 
            MediaPlayer mp = MediaPlayer.create(MusicPlayer.this, 
                R.raw.everlast); 
            mp.prepare(); 
            mp.start(); 
            // i.e. react on the end of the music-file: 
            mp.setOnCompletionListener(new OnCompletionListener(){ 

              // @Override 
              public void onCompletion(MediaPlayer arg0) { 
                // File has ended !!! 

Toast.makeText(context, "Media Completed with Success", Toast.LENGTH_SHORT).show(); 
              } 
            }); 
          } 
      }); 
     } 
    } 

poner un archivo de sonido en activos carpeta

+0

Es gracioso, en realidad usé el código que encontré y funcionó a las mil maravillas. ¡Gracias! – Si8

Cuestiones relacionadas