旋转回肖像时,避免Android VideoView损坏

Grz*_*icz 10 android corruption screen-rotation android-videoview

我设法写了一个有限的视频播放器,能够从互联网上查看.3gp文件.视频将以全屏显示,保持视频宽高比.此外,旋转不会中断视频,从而保持播放没有问题.

一切似乎都很好,但是......当你旋转回到肖像时,我的HTC图例中,视频已损坏,而不是显示全屏,它以原始像素大小显示.但再次旋转到景观作品,并完美展现.有什么想法吗?不幸的是,我没有更多的硬件来测试它,我已经用尽了测试的想法.

您可以从https://github.com/gradha/Android-video-stream-rotation获取完整的示例源代码.以下是我打开应用程序,旋转到横向,触摸屏幕以显示视频控件,然后旋转回到肖像以查看损坏的屏幕截图. 视频开始画像正常

在风景上视频也很好用

但现在回到肖像总是显示腐败

Tou*_*der 4

源代码位于https://github.com/gradha/Android-video-stream-rotation。您添加了评论:

由于我们在 AndroidManifest.xml 中指定要处理自己的方向更改,因此我们根据纵向或横向功能调整屏幕大小。

来自源码AndroidManifest.xml

android:configChanges="orientation|screenSize"
Run Code Online (Sandbox Code Playgroud)

因此,如果您将此属性添加到清单中的活动元素中,我会将其解释为活动将处理所有方向更改?不是你?

来自 Android 开发者

要声明您的Activity 处理配置更改,请在清单文件中编辑相应的 Activity 元素以包含 android:configChanges 属性...更多

所以你不需要

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个测试项目来检查是否是这种情况:

旋转视频流示例:https ://github.com/TouchBoarder/RotatingVideoStream

我的结论:我不需要覆盖活动中的“onConfigurationChanged”即可以纵向和横向方式正确显示视频,并且视频会在旋转变化时继续播放。

请随意改进和使用代码:)