【发布时间】:2016-12-28 08:05:35
【问题描述】:
我有一个MediaPlayer 实例mPlayer。
mPlayer的戏演完了,我想做点动作。我已经看到这是通过接口OnCompletionListener的方法onCompletion完成的。
如何为我的mPlayer 实例重新定义此方法?
编辑:
我已经创建了我的 API AudioPlayer。
import android.media.MediaPlayer;
import java.io.IOException;
public class AudioPlayer {
public MediaPlayer mPlayer = new MediaPlayer();
public AudioPlayer(String source, boolean loop) {
configurePlayer(source, loop);
}
private void configurePlayer(String source, boolean loop) {
try {
mPlayer.reset();
mPlayer.setDataSource(source);
mPlayer.setLooping(loop);
mPlayer.prepare();
} catch (IOException e) { }
}
public void startPlaying() {
mPlayer.start();
}
public void stopPlaying() {
mPlayer.stop();
}
}
现在我有各种音频播放器。但我一次只想要一场比赛。因此,我已经实现了互斥(不完全是,但对于我的应用来说已经足够了)。
boolean token = true;
public void onClick(View v) {
if (token) {
token = false;
mPlayer.startPlaying();
}
}
现在我希望在播放结束时返回令牌。类似的东西
onCompletion() {
token = true;
}
【问题讨论】:
-
到目前为止你做了什么,向我们展示你的
MediaPlayer以及你需要对OnCompletionListener采取什么行动。 -
@Stanojkovic 完成!问题已编辑
-
mPlayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { // TODO 自动生成的方法存根 mPlayer.release(); token = true; }
标签: java android interface android-mediaplayer abstract-class