在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?

下一篇: blank video after path change on some devices