Seekbar未更新Mediaplayer Android Lollipop API Level 21

时间:2014-12-03 18:16:56

标签: android android-mediaplayer surfaceview android-5.0-lollipop

我正在使用surfaceview播放视频和媒体播放器寻求更新声音和视频。但是对于棒棒糖,当我尝试使用搜索时只有音频变化,但视频保持在同一位置。任何人都可以帮助Lollipop造成这个问题吗?

P.S。在棒棒糖之前的版本,相同的代码完美地工作。 。 修改:在寻求视频和MX播放器时,在Facebook中观察到相同的行为。但是在MX播放器上从HW改为SW编码器寻求工作正常。如何在我的代码中修复它?

@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();
    }

}

1 个答案:

答案 0 :(得分:0)

通过在开发者选项中禁用Nu播放器来解决此问题。现在一切都很好。