旋转的手机在Android上重新启动video

嘿家伙,当我旋转我的手机,我的活动重新启动。 我有一个video播放video,我旋转和video重新启动。 现在我发现把这个添加到我在清单中的活动中

<activity android:name="Vforum" android:configChanges="orientation"></activity> 

现在的问题是,video控制不会重新绘制,直到它们消失并返回,从而使从横向模式到纵向模式的真正的长控制或者从纵向到横向的控制变得非常短。 一旦他们消失,然后我点击让他们回来,那么他们正确的大小。 有没有更好的方法来做到这一点?

android:configChanges="orientation"

到AndroidManifest.xml中的Activity。

  • 解决了我的问题,不会再次下载渐进式video..

如果您的目标API级别为13或更高,则除了此处所述的orientation值之外,还必须包含screenSize值。 所以你的标签可能看起来像

 android:configChanges="orientation|screenSize" 

考虑记住活动生命周期事件中的video文件位置。 活动创build后,您可以获取video位置,并从重新启动的那一刻开始播放。

在你的Activity类中:

 @Override protected void onCreate(Bundle bundle){ super.onCreate(bundle); int mPos=bundle.getInt("pos"); // get position, also check if value exists, refer to documentation for more info } @Override protected void onSaveInstanceState (Bundle outState){ outState.putInt("pos", myVideoView.getCurrentPosition()); // save it here } 

configChanges属性添加到清单意味着您将自己处理configuration更改 。 在您的活动中覆盖onConfigurationChanged()方法:

 int lastOrientation = 0; @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); // Checks if orientation changed if (lastOrientation != newConfig.orientation) { lastOrientation = newConfig.orientation; // redraw your controls here } } 

ConfigChanges是正确的,但它确实是这样工作的;

  <activity android:configChanges="orientation|screenSize" ... > 

也在Activity Class中

 @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (lastOrientation != newConfig.orientation) { lastOrientation = newConfig.orientation; // redraw your controls here } }