刚刚在Unable to pause/forward/backward video using mediacontroller in android中偶然发现了这个答案。一些 LG 设备似乎也有这个问题。
正如@Vineela Yarlagadda 所述,您需要覆盖下面的 VideoView 方法
@Override
public boolean canSeekForward() {
return true;
}
@Override
public boolean canSeekBackward() {
return true;
}
@Override
public boolean canPause() {
return true;
}
在 Nexus 7 上测试和工作。
替代解决方案:按照 ApiDemos 中的示例代码中的建议,使用 SurfaceView 而不是 VideoView。
setContentView(R.layout.media_player2);
mSurface = (SurfaceView) findViewById(R.id.surface);
holder = mSurface.getHolder();
holder.addCallback(this);
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(stream);
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepareAsync();
mController = new MediaController(this);
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mController.setMediaPlayer(this);
mController.setAnchorView(mSurface);
在我使用 VideoView 和 Player 时遇到与 @kriswiz 相同的问题后,我打开了 bug code.google.com/p/android/issues/detail?id=59776。该视频现在将在 Nexus 7 和三星 Nexus 上播放。