Android 安卓媒体播放器播放两次后停止播放

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

我尝试播放默认铃声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();
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个环。