【发布时间】:2012-04-15 07:41:38
【问题描述】:
如何使用 OnCompletion 监听器来播放一些音乐? 我想按一个按钮转到另一个播放音乐的活动,然后在音乐播放完成后返回。我已经编码了其他的东西。我只是不知道如何使用 OnCompletion 监听器?
【问题讨论】:
标签: android media-player listener
如何使用 OnCompletion 监听器来播放一些音乐? 我想按一个按钮转到另一个播放音乐的活动,然后在音乐播放完成后返回。我已经编码了其他的东西。我只是不知道如何使用 OnCompletion 监听器?
【问题讨论】:
标签: android media-player listener
你应该把音乐完成时应该运行的代码放在OnCompletionListener中,例如:
mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
finish(); // finish current activity
}
});
【讨论】:
mPlayer.setOnErrorListener(new OnErrorListener() {
public boolean onError(MediaPlayer paramMediaPlayer, int paramInt1,int paramInt2) {
// TODO Auto-generated method stub
//your code if any error occurs while playing even you can show an alert to user
return true;
}
});
mPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
//your code if the file was completely played either show an alert to user or start another activity or file.
//even you can finish you activity here
}
});
【讨论】:
我发现上面是正确的,但是我一直在努力将代码放在哪里。 见下文,我把这段代码放在我的代码之后开始曲调!
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.start(); //Next line is the beginning of where to place the code.
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
Toast.makeText(MainActivity.this, "I'm Finished", Toast.LENGTH_SHORT).show();
}
});
}
});
【讨论】:
这里是 setOnCompletionListener 的 kotlin 版本:
mediaPlayer.setOnCompletionListener(MediaPlayer.OnCompletionListener { it // this is MediaPlayer type
Log.d(TAG,"setOnCompletionListener OnCompletionListener called")
// do other task
})
【讨论】: