2012-05-10 118 views
7

好吧,我想實現錄音的基本功能,如通知一次的音頻播放完

錄製,播放/暫停,停止

,我能夠做的所有的人,但唯一的問題是我怎樣才能得到通知,一旦音頻完成 播放。我的意思是如果我播放音頻文件,那麼一旦它完成播放我想要一個通知,它現在停止。

到目前爲止,我已經使用

mPlayer.start() // to start the audio 

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

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

我只是試圖找出如何將我知道一旦音頻文件自動播放完畢

回答

24

您可以使用媒體播放器類的完成監聽器做這個。

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