6

我实现了嵌入视频播放器的电子阅读器,我需要一个选项来切换播放器的全屏模式。VideoView&Fullscreen&Orientation changes - Android

我的问题是:

这是上播放全屏视频,让用户从这种状态回来,他之前阅读的页面,并保持视频的当前时间的最好方式。

另一种复杂的情况下,我需要处理的是:

有在纵向和横向页面的不同的视觉效果,如果肖像用户切换全屏模式和旋转设备,视频应该去到风景模式,并重新调整视频以适应屏幕,但如果用户从此页面返回,他应该再次返回肖像。

如果需要,我可以提供更多信息。 在此先感谢

回答

9

我可以推荐使用ActivityVideoView在布局。

您可以保存在这样

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

方向改变位置。然后恢复位置,并恢复在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); 
} 
+1

其实,最大的问题是关于从页面移除旧videoview和通过方向变化保持状态一致。 (不重新创建背景活动) – 2012-07-11 15:15:19

+0

好的,我们得到了mVideoView.getCurrentPosition(),以便如何将视频设置为此值。而主要问题是要花时间播放多少视频并将其设置为 – Sameer 2012-12-15 07:37:22

+1

'mVideoView.getCurrentPosition()'会告诉你播放了多少视频,并将其保存到'outState'。然后在'onCreate'中检查'savedInstanceState'是否有这个节省的时间。在'playVideoFromPos(int pos)'方法中,你可以调用'mVideoView.seekTo(pos);'和'mVideoView.start();'。这将做你需要的。 – vasart 2012-12-15 08:23:04