我试图播放默认铃声5次。相关代码如下: -
MediaPlayer player = MediaPlayer.create(mContext, Settings.System.DEFAULT_RINGTONE_URI);
player.setOnCompletionListener(new OnCompletionListener(){
int maxCount = 5;
@Override
public void onCompletion(MediaPlayer player) {
if(count < maxCount) { // count initialised to 1 previously
count++;
player.seekTo(0);
player.start();
}
}});
player.start();
但它只播放两次。但是,当我使用eclipse通过调试器运行它时,它正确播放5次。 任何想法都将非常感激。 首先十分感谢 P
答案 0 :(得分:0)
Settings.System.DEFAULT_RINGTONE_URI
一直在无休止地播放,因此OnCompletion
永远不会被解雇。但是,你可以player.getDuration()
。使用Timer
有效。
MediaPlayer player = MediaPlayer.create(mContext, Settings.System.DEFAULT_RINGTONE_URI);
player.start();
int maxCount = 5;
new Timer().schedule(new TimerTask() {
@Override
public void run() {
player.stop();
}
}, player.getDuration() * maxCount);