播放 VideoView 的不同纵向和横向布局

Posted

技术标签:

【中文标题】播放 VideoView 的不同纵向和横向布局【英文标题】:Different Portrait and Landscape layouts with VideoView playing 【发布时间】:2011-09-01 09:03:24 【问题描述】:

我有一个 VideoView 在横向时占据整个屏幕。 我希望能够在纵向时将视频限制在屏幕的上半部分,以便在其下方显示其他控件/信息。

我在清单中使用“configChanges=orientation”来防止视频视图在方向改变时重新启动。然而,这意味着不同的方向布局被忽略,只使用遇到的第一个。

有谁知道在纵向显示视频下方的其他 UI 组件时,我将如何让视频在从纵向到横向的更改之间保持播放?

谢谢!

【问题讨论】:

【参考方案1】:

当定向发生时,您可以保持在 videoview 中播放的数据不会重新启动:

    重写 onRetainNonConfigurationInstance() 方法以返回您想要保留的对象。

    当您的 Activity 再次创建时,调用 getLastNonConfigurationInstance() 来恢复您的对象。

你也可以参考这个文档:

http://developer.android.com/guide/topics/resources/runtime-changes.html

【讨论】:

Caution: While you can return any object, you should never pass an object that is tied to the Activity, such as a Drawable, an Adapter, a View or any other object that's associated with a Context. 看来我不能简单地保留视频视图。 是的...您需要将情况保存在视频文件中,即在定向之前播放了多少...

以上是关于播放 VideoView 的不同纵向和横向布局的主要内容,如果未能解决你的问题,请参考以下文章

如何在颤动中显示横向和纵向的不同布局

处理略有不同的纵向和横向布局的单个 Android 布局 xml 文件?

为纵向和横向指定不同的布局?

如何使用自动布局为纵向和横向方向配置不同的布局?

横向和纵向模式的自动布局不同的约束

使用旋转和按钮处理 VideoView 全屏和纵向