微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android mediaPlayer搜索暂停时无法正常工作

seekPo()方法在播放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);
        }
    }

解决方法

由于某些设备的某些原因:SystemClock.sleep(200)是必要的,因为在搜索到真正完成之前玩家很快就会调用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);
    }

原文地址:https://www.jb51.cc/android/314996.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐