旋转手机在android上重启视频
当我旋转手机时,我的活动重新开始。我有一个播放视频的视频视图,我旋转视频并重新启动。现在我发现在清单中将其添加到我的活动中修复了它旋转手机在android上重启视频,android,video,controls,android-videoview,Android,Video,Controls,Android Videoview,当我旋转手机时,我的活动重新开始。我有一个播放视频的视频视图,我旋转视频并重新启动。现在我发现在清单中将其添加到我的活动中修复了它 <activity android:name="Vforum" android:configChanges="orientation"></activity> 现在的问题是视频控件在消失并返回之前不会被重新绘制,因此会留下很长的控件从横向模式切换到纵向模式,或者很短的控件从纵向模式切换到横向模式。一旦它们消失,然后我点击让它们回来,那么
<activity android:name="Vforum" android:configChanges="orientation"></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
属性添加到清单中意味着您将。覆盖活动中的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
}
}
加
android:configChanges=“orientation”
到AndroidManifest.xml中的活动
- 解决了我的问题,不再下载渐进式视频
方向
值外,还必须包括屏幕大小
值。所以你的标签看起来像
android:configChanges="orientation|screenSize"
ConfigChanges是正确的,但它确实是这样工作的
<activity
android:configChanges="orientation|screenSize" ... >
你应该试试这个。转到AndroidManifest.xml文件,然后通过它的标记
<activity android:name=".activity_name"
android:configChanges="keyboardHidden|orientation|screenSize">
</activity>
旋转时调用什么生命周期事件?我很快就在谷歌上搜索到了答案。我看到myVideoView.getCurrentPosition()
将保存当前时间,但当我旋转并重置时,我还看到渐进式下载也重新开始。你能举个简单的例子吗?Sudo代码甚至可以为我工作,谢谢!旋转手机时,当前活动实例将被销毁,新实例将被创建,所以您可以在onCreate()中检查捆绑对象的视频位置。视频位置可以保存在onSaveInstanceState(捆绑)中。我看到的是,视频从未来某个时间开始。也许是下一帧,大约1秒钟。但是信息丢失了。有人知道如何旋转而不丢失任何视频吗?哦,好的,明白了!我刚刚开始java的第二个星期,所以我对它一无所知……现在我该如何重新绘制控件呢?我尝试了mVideoView.refreshDrawableState()代码>并失败。我不知道是什么方法重新绘制的。你不想重新创建整个视图,因为这会杀死视频播放器。您只需要更换需要更改(控制)的部件,并保持播放机完好无损。基本上,您将:找到父视图组(布局),获取要替换的视图的位置(索引),删除它们,膨胀新视图,添加到相同的位置:不过我使用的是标准MediaController。我不想改变任何布局。这是需要重新绘制的内置视频控件。我发布了一段视频,讲述了正在发生的事情:看了视频后有什么想法吗?我7年前问过这个问题,所以我确信事情已经改变了。不过,谢谢你的回复。
<activity android:name=".activity_name"
android:configChanges="keyboardHidden|orientation|screenSize">
</activity>