2012-05-10 17 views
7

Więc staram się realizować podstawowe funkcje nagrywania głosu, jakzawiadomić raz audio zakończeniu odtwarzania

nagrywanie, odtwarzanie/pauza, stop

jestem w stanie zrobić wszystko z nich, ale tylko problem w jaki sposób mogę otrzymać powiadomienie po zakończeniu odtwarzania dźwięku . Chodzi mi o to, że jeśli odtwarzam plik audio, to po zakończeniu gry chcę powiadomienie, że jest teraz zatrzymany.

dotychczas Użyłem

mPlayer.start() // to start the audio 

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

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

jestem po prostu staramy się dowiedzieć, skąd mam wiedzieć, gdy plik audio automatycznie zakończeniu odtwarzania

Odpowiedz

24

Można użyć zakończeniu słuchacz klasy Media Player zrobić to.

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

Gdzie ten kod się pojawi? – Si8

+0

w swoim onCreate() –

+0

Czy to działa w przypadku przesyłanych strumieniowo utworów? – Adam

5

Spróbuj użyć tego kodu

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

kod MusicPlayer aktywny

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

umieścić plik dźwiękowy w aktywach folder

+0

To zabawne, faktycznie użyłem kodu, który znalazłem i działał jak czar. Dzięki! – Si8

Powiązane problemy