Android 安卓媒体播放器播放两次后停止播放
我尝试播放默认铃声5次。有关守则如下:-Android 安卓媒体播放器播放两次后停止播放,android,loops,audio,android-mediaplayer,Android,Loops,Audio,Android Mediaplayer,我尝试播放默认铃声5次。有关守则如下:- MediaPlayer player = MediaPlayer.create(mContext, Settings.System.DEFAULT_RINGTONE_URI); player.setOnCompletionListener(new OnCompletionListener(){ int maxCount = 5; @Override public void onComp
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();
MediaPlayer=MediaPlayer.create(mContext,Settings.System.DEFAULT\u RINGTONE\u URI);
player.setOnCompletionListener(新的OnCompletionListener(){
int maxCount=5;
@凌驾
完成后的公共作废(MediaPlayer){
如果(count
但它只播放两次。但是,当我使用eclipse通过调试器运行它时,它正确地播放了5次。
任何想法都将不胜感激。
非常感谢
p
Settings.System.DEFAULT\u RINGTONE\u URI
像无穷无尽的流一样持续播放,因此完成时不会触发OnCompletion
。但是,您可以player.getDuration()
。使用定时器
有效
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);
更新:如果我在回复的onCompletion()方法thx中的player.start()之前几秒钟放置一个线程睡眠,它就会工作。但是,当我运行调试器时,每次都会执行onCompletion(),如前所述,我得到5个环。