VideoView&Fullscreen&Orientation更改 - Android

Mar*_*los 6 android screen-orientation android-video-player orientation-changes android-orientation

我实现了一个嵌入了视频播放器的电子阅读器,我需要一个从播放器切换全屏模式的选项.

我的问题如下:

这是在全屏播放视频的最佳方式,让用户从此状态返回到之前正在阅读的页面,并保留视频的当前时间.

我需要处理的另一个复杂情况是:

在纵向和横向上有一个页面的不同可视化,如果用户在纵向上切换全屏并旋转设备,则视频应转到横向模式并重新缩放视频以适合屏幕,但如果用户从此页面返回,则应该再次回到肖像.

如果需要,我可以提供更多信息.提前致谢

vas*_*art 9

我可以推荐使用ActivityVideoView布局.

您可以像这样在方向更改上保存位置

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    if (mVideoView.isPlaying()) outState.putInt("pos", mVideoView.getCurrentPosition());
}
Run Code Online (Sandbox Code Playgroud)

然后恢复位置并继续在onCreate方法中播放

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.video);

    mVideoView = (VideoView) findViewById(R.id.video);
    MediaController mediaController = new MediaController(this);
    mediaController.setAnchorView(mVideoView);
    mVideoView.setMediaController(mediaController);
    mVideoView.setOnCompletionListener(this);

    Intent intent = getIntent();
    path = intent.getExtras().getString("path");

    int pos = 0;
    if (savedInstanceState != null) {
        pos = savedInstanceState.getInt("pos");
    }

    playVideoFromPos(pos);
}
Run Code Online (Sandbox Code Playgroud)

  • 我认为它会再次回绝它 (3认同)
  • `mVideoView.getCurrentPosition()` 为您提供播放了多少视频的时间并将其保存到 `outState`。然后在 `onCreate` 中检查 `savedInstanceState` 是否有这个保存时间。在`playVideoFromPos(int pos)`方法中,你可以调用`mVideoView.seekTo(pos);`和`mVideoView.start();`。那会做你需要的。 (2认同)