2012-05-10 2 views
7

Ну я пытаюсь реализовать базовые функции записи голоса, какоповещать когда звук закончил играть

запись, воспроизведение/пауза, остановка

я нахожусь в состоянии сделать все из них, но единственный вопрос как я могу получить уведомление после того, как звук будет закончен. играет. Я имею в виду, если я играю в аудиофайл, а затем, когда он закончит игру, я хочу получить уведомление о том, что он остановлен сейчас.

до сих пор я использовал

mPlayer.start() // to start the audio 

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

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

я просто пытаюсь выяснить, как бы я знать, как только звуковой файл автоматически закончил играть

ответ

24

Вы можете использовать сдачи слушателем класса Media Player, чтобы сделать это.

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

Куда бы этот код прошел? – Si8

+0

в вашем onCreate() –

+0

Будет ли это работать для потоковых песен? – Adam

5

Попробуйте использовать этот код

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

код MusicPlayer активность

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

положить файл на звук активов папка

+0

Это смешно, я действительно использовал код, который я нашел, и он работал как шарм. Благодаря! – Si8

Смежные вопросы