在Android中,Activity没有看到方向改变?
我有一个简单的活动来播放视频。
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();
在纵向布局中,视频与顶部对齐,以便它在屏幕的前三分之一播放,而在横向布局中,视频是通过在高度和宽度上包装内容来全屏显示的。 在Manifest中,我已经设置了android:configChanges="orientation"
这样Activity就不会在方向更改上刷新。 但我的问题是布局不会随着方向改变而改变。 如何在方向更改时保持播放视频,还能获得正确的布局以显示方向更改?
因此,现在我认为解决方案是记录视频在播放时的位置,然后使用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
}
但是现在我不知道代码来抓取视频的状态......
当您设置android:configChanges="orientation"
您明确告诉Android操作系统,您将自己处理方向更改,包括根据需要切换布局等,因此您需要在您的活动中实施onConfigurationChanged()
并处理所需的任何更改在那里。
另外值得注意的是, android:configChanges="orientation"
只处理风景 - >肖像变化,而不是肖像风景。 尝试将orientation
更改为orientation|keyboardHidden
以处理这两种情况。
Android:横向模式的备用布局xml根据方向有不同的布局。
而且您需要某种方式来为视频中发生定位时间的确切点添加书签。
链接地址: http://www.djcxy.com/p/46497.html上一篇: In Android, the Activity isn't seeing the orientation change?