【问题标题】:Android mediaPlayer seekTo not working when pausedAndroid mediaPlayer seekTo在暂停时不起作用
【发布时间】:2014-03-14 07:37:10
【问题描述】:

seekTo() 方法在mediaPlayer 播放时效果很好。如果mediaPlayer 被暂停,当我寻找一个位置并调用start() 时,它就会从暂停的地方开始播放。

我的代码如下,在logcat中,我可以看到它正在寻找。

@Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
        if(player == null || player.mediaPlayer == null){
            return;
        }
        Log.e("player status", "status is " + PlayerStatusCache.playerStatus);

        if(durationProgress < player.mediaPlayer.getDuration()){
            player.mediaPlayer.seekTo(durationProgress);
            Log.e("player", "seeking");
        } else {
            player.mediaPlayer.seekTo(player.mediaPlayer.getDuration() - 1000);
        }
    }

【问题讨论】:

    标签: android android-mediaplayer


    【解决方案1】:

    在某些设备上由于某些原因:SystemClock.sleep(200) 是必要的,因为在 seekTo 真正完成之前,玩家过早调用了onSeekComplete(MediaPlayer arg0)

     mMediaPlayer.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {
            @Override
            public void onSeekComplete(MediaPlayer arg0) {
                Log.d(TAG, "onSeekComplete() current pos : " + arg0.getCurrentPosition());
                SystemClock.sleep(200);
                mMediaPlayer.start();
            }
        });
        try {
            mMediaPlayer.seekTo(mCurrentPos);
        } catch (IllegalStateException e){
            Log.d(TAG, e.getLocalizedMessage(), e);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多