1

我有一个播放视频的简单活动。

        uriStr = ("http://pathToVideo.com/video/" + yyyyMdd_Str + "/" + yyyyMdd_Str +       ".mp4");

    VideoView testVideo1_VV =(VideoView) findViewById(R.id.videoTest7vid_VV);
    testMediaCon1_MC = new MediaController(this);
    testMediaCon1_MC.setAnchorView(testVideo1_VV);
    testVideo1_VV.setMediaController(testMediaCon1_MC);
    testVideo1_VV.setKeepScreenOn(true);
    testVideo1_VV.setVideoPath(uriStr);
    testVideo1_VV.requestFocus();
    testVideo1_VV.start();

在纵向布局中,视频与顶部对齐,以便在屏幕的顶部三分之一处播放,而在横向布局中,视频通过在高度和宽度上包裹内容来全屏显示。在我设置的清单android:configChanges="orientation"中,活动不会在方向更改时刷新。但我的问题是布局不会随着方向的变化而变化。如何在方向改变时保持视频播放,同时在方向改变时获得正确的布局显示?

所以现在我认为解决方案是在播放时记录视频的位置,然后用于savedInstanceState检索视频状态并在方向改变时从该点开始播放视频。像这样的东西:

    @Override
protected void onSaveInstanceState(Bundle out) {

 super.onSaveInstanceState(out);
//video state would go here
}

@Override
protected void onRestoreInstanceState(Bundle in) {

 super.onRestoreInstanceState(in);
 //video state would go here
}

但现在我不知道获取视频状态的代码......

4

2 回答 2

1

当您设置时,android:configChanges="orientation"您明确告诉 Android 操作系统您将自己处理方向更改,包括根据需要切换布局等,因此您需要onConfigurationChanged()在活动中实现并处理您想要在那里进行的任何更改。

还值得注意android:configChanges="orientation"的是,只处理横向 -> 纵向更改,而不是纵向到横向。尝试更改orientationorientation|keyboardHidden处理这两种情况。

于 2013-08-20T02:31:07.180 回答
0

Android:横向模式的备用布局 xml根据方向具有不同的布局。

而且您需要一些方法来为视频中发生定向时间的确切点添加书签。

于 2013-08-19T19:28:23.010 回答