确保在方向更改后保留视频缓冲区,而无需手动处理onConfiguration更改

Maz*_*ziz 8 android screen-orientation

无论如何,您可以使应用程序在方向之后保留缓冲区,而无需手动处理配置更改.

场景基本上:

  1. 当方向改变时,应保留视频缓冲区直到最新点.

  2. 需要重新加载新的布局(因为portait和lanscape具有不同的布局),因此让app重新启动活动以重新加载新资源是我认为最好的方法.

  3. 视频组件位于片段中.

我尝试但不可接受的替代方案:

  1. 第一个解决方法是保存视频的位置,在创建视图后,使用seekTo转到最后一个点.但是,这将导致设备再次重新缓冲.

  2. 我尝试使用片段setRetainInstance(true)并确保在方向更改后媒体播放器不会重新初始化.在每个onCreateView之后,我只需将mediaplayer.setDisplay()设置为新的surfaceholder.不幸的是,这导致媒体播放器进入错误状态,这又需要重置媒体播放器.

对此有何建议/解决方法?

编辑:我看到stackoverflow中的某个地方,你可以更改媒体播放器表面持有人,而媒体播放器在android 4.0+中处于活动状态.但是,我正在为android 3.x开发一个应用程序.

小智 0

我认为您可以重写 onConfigurationChanged() 并以编程方式重新布局。

您可以在不接触视频的情况下修改布局。