我正在尝试实现录音的基本功能,例如
录制,播放/暂停,停止
我能够做到所有这些,但唯一的问题是如何在音频结束后收到通知 播放。我的意思是,如果我播放音频文件,那么一旦完成播放,我想要通知它现在已经停止。
到目前为止,我已经使用了
mPlayer.start() // to start the audio
mPlayer.stop(); // to stop the audio
mPlayer.pause(); //to pause the audio
我只是想知道一旦音频文件自动播放完毕后我怎么知道
答案 0 :(得分:26)
您可以使用Media Player类的Completion Listener来执行此操作。
mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
Log.i("Completion Listener","Song Complete");
Toast.makeText(context, "Media Completed", Toast.LENGTH_SHORT).show();
}
});
答案 1 :(得分: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();
}
});
}
});
}
}
在资源文件夹中放置文件声音
答案 2 :(得分:2)
使用mediaplayer类的 setOnCompletionListener 方法.. See how to use that method.. here