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

标签 android screen-orientation

无论如何,您是否可以让应用程序在定向后保持缓冲区,而无需手动处理配置更改。

场景基本:

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

  2. 需要重新加载一个新的布局(因为纵向和横向的布局不同), 因此,让应用重新启动 Activity 以重新加载新资源是我认为的最佳方式。

  3. 视频组件在 fragment 中。

我尝试过但 Not Acceptable 替代方案:

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

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

对此有什么建议/解决方法吗?

已编辑:我在 stackoverflow 的某个地方看到,当媒体播放器在 android 4.0+ 中处于 Activity 状态时,您可以更改媒体播放器表面支架。但是,我正在为 android 3.x 开发一个应用程序。

最佳答案

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

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

关于android - 确保在方向更改后保留视频缓冲区,而无需手动处理 onConfiguration 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10679021/

相关文章:

ios - 退出 youtube 全屏后应用旋转为纵向

android - 为什么我应该将可移植类库与 Xamarin 一起使用?

php - 在 Android 应用程序中使用 POST 将 JSON 发送到服务器

android - 屏幕方向如何避免音频停止(几毫秒)?

android - 手机间隙 : Force screen orientation portrait/landscape

Android 应用程序方向锁定为横向、锁定设备、将其旋转为纵向并解锁、应用程序崩溃

java - 无法将 Theme.Holo 用于我的第一个 Android 应用程序的样式

java - Android中如何绘制弯曲的文字

java - 如何在 Android 中手动正确重新加载 liveData?

ios - shouldAutorotateToInterfaceOrientation 仅在呈现 View Controller 后调用