Android Media Player播放两次后停止播放

时间:2016-01-28 00:10:15

标签: 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 onCompletion(MediaPlayer player) {
        if(count < maxCount) {  // count initialised to 1 previously
          count++;
          player.seekTo(0);
          player.start();
        }
    }});
    player.start();

但它只播放两次。但是,当我使用eclipse通过调试器运行它时,它正确播放5次。 任何想法都将非常感激。 首先十分感谢 P

1 个答案:

答案 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);