2012-05-10 4 views
7

Bene Sto cercando di implementare la funzionalità di base della registrazione vocale, comenotificare una volta che l'audio è finito di giocare

Record, play/pausa, stop

io sono in grado di fare tutto di loro, ma l'unico problema è come posso ricevere una notifica una volta che l'audio è finito giocando. Voglio dire se suono un file audio e una volta finito di giocare voglio una notifica che ora è ferma.

Finora ho usato

mPlayer.start() // to start the audio 

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

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

sto solo cercando di scoprire come faccio a sapere una volta che il file audio finito automaticamente la riproduzione

risposta

24

È possibile utilizzare il completamento Listener di classe Media Player fare Questo.

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

Dove dovrebbe andare questo codice? – Si8

+0

nel tuo onCreate() –

+0

Funzionerà per le canzoni in streaming? – Adam

5

Provare per utilizzare questo codice

<?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> 

codice MusicPlayer Attività

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(); 
              } 
            }); 
          } 
      }); 
     } 
    } 

mettere un suono file alla asset cartella

+0

È divertente, in realtà ho usato il codice che ho trovato e ha funzionato come un fascino. Grazie! – Si8