VideoView & Fullscreen & Orientation changes - Android

让人想犯罪 __ 提交于 2020-01-11 05:08:57

问题


I implemented a e-Reader that has embedded video players on it, I need a option to toggle fullscreen mode from the player.

My question is the following:

Which is the best way to play a video on fullscreen and let the user come back from this state to the page he is reading before and also keep the current time of the video.

Another complicated situation I need to handle is:

There's different visualizations of a page on portrait and landscape, if the user toggle fullscreen on portrait and rotate the device, the video should go to landscape mode and rescale the video to fit the screen, but if the user goes back from this page he should return to portrait once again.

I'm able to give more info if needed. Thanks in advance


回答1:


I can recommend using Activity with VideoView in layout.

You can save position on orientation change like this

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

Then restore position and resume playing in onCreate method

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


来源:https://stackoverflow.com/questions/11422725/videoview-fullscreen-orientation-changes-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!