Seekbar未更新Mediaplayer Android棒棒糖API级别21

Seekbar未更新Mediaplayer Android棒棒糖API级别21,android,android-mediaplayer,surfaceview,android-5.0-lollipop,Android,Android Mediaplayer,Surfaceview,Android 5.0 Lollipop,我使用surfaceview播放视频,mediaplayer seekto也会更新声音和视频。但在棒棒糖中,当我尝试使用seekto时,只有音频发生变化,但视频保持在相同的位置。有人能解释为什么棒棒糖会引起这个问题吗 另外,在棒棒糖之前的版本中,同样的代码可以完美地工作。 . 编辑:在Facebook上搜索视频和MX播放器时观察到了同样的行为。但在MX播放器中,从硬件到软件编码器的转换效果很好。如何在我的代码中修复它 @Override public void onProgressChanged

我使用surfaceview播放视频,mediaplayer seekto也会更新声音和视频。但在棒棒糖中,当我尝试使用seekto时,只有音频发生变化,但视频保持在相同的位置。有人能解释为什么棒棒糖会引起这个问题吗

另外,在棒棒糖之前的版本中,同样的代码可以完美地工作。 . 编辑:在Facebook上搜索视频和MX播放器时观察到了同样的行为。但在MX播放器中,从硬件到软件编码器的转换效果很好。如何在我的代码中修复它

@Override
public void onProgressChanged(SeekBar bar, int progress, boolean fromuser) {
    long duration = mPlayer.getDuration();
    long newposition = (duration * progress) / 1000L;
    mPlayer.seekTo((int) newposition);
    Log.d(TAG, "progress changed");
    // mPlayer.setDisplay();
    // mPlayer.start(); 
}
片段:

    vidSurface = (SurfaceView) getActivity().findViewById(R.id.surfView);
    frame = (FrameLayout) getActivity().findViewById(
            R.id.videoSurfaceContainer);
    vidHolder = vidSurface.getHolder();
    vidHolder.addCallback(this);
    mediaPlayer = new MediaPlayer();
    mediaPlayer.setOnErrorListener(this);
    mediaPlayer.setOnPreparedListener(this);
    mediaPlayer.setOnCompletionListener(this);
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

@Override
public void surfaceCreated(SurfaceHolder holder) {
    if (mediaPlayer == null)
        mediaPlayer = new MediaPlayer();

    playVideo();

}


public void playVideo() {

    mediaPlayer.reset();
    mediaPlayer.setDisplay(vidHolder);
    VideosModel model = null;

        model = videosList.get(videoPosition);


    videoTitle = model.getVideoTitle();
    tvTitle.setText(videoTitle);

    try {
        // mediaPlayer.setDisplay(vidHolder);
        mediaPlayer
                .setDataSource(getActivity(), Uri.parse(model.getPath()));
        tryToGetAudioFocus();
        mediaPlayer.prepareAsync();

    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (SecurityException e) {
        e.printStackTrace();
    } catch (IllegalStateException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

通过禁用开发者选项中的Nu player解决了这个问题。现在一切都很好。

听起来很相似,不过使用的是较低级别的API。如果有人能提出一些解决方案吗?