旋转手机在安卓上重新启动视频



当我旋转手机时,我的活动记录会重新启动。我有一个视频视图播放视频,我旋转,视频重新启动。现在我发现将其添加到清单中的活动已修复

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

现在的问题是视频控件在消失并返回之前不会重新绘制,因此要么留下从横向到纵向模式的非常长的控件,要么从纵向模式到横向的非常短的控件。一旦它们消失,然后我点击使它们回来,然后它们的大小正确。有没有更好的方法可以做到这一点?

add

android:configChanges="orientation"

到您在 AndroidManifest 中的活动.xml。

  • 解决了我的问题无法再次下载渐进式视频。.

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

android:configChanges="orientation|screenSize"

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

在您的活动课程中:

@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 属性添加到清单意味着您将自己处理配置更改。覆盖活动中的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" ... >

以及在活动类中

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

你应该试试这个。转到您的 AndroidManifest.xml 文件,然后跳过它标签。

<activity android:name=".activity_name"
 android:configChanges="keyboardHidden|orientation|screenSize">
</activity>

相关内容

  • 没有找到相关文章