【问题标题】:SurfaceView restart video whenever changing device orientation每当更改设备方向时,SurfaceView 都会重新启动视频
【发布时间】:2014-05-29 09:48:25
【问题描述】:

我在 Android 中使用 SurfaceView 播放视频。

每当我旋转设备并且屏幕改变方向时,视频就会从头开始播放。

我希望在屏幕旋转时恢复视频。

请指导我。

【问题讨论】:

    标签: android video surfaceview


    【解决方案1】:

    将此添加到您的 Manifest.xml 文件中。

    android:configChanges="orientation"
    

    您可以使用它来相应地设置高度和宽度等

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
       if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            //Todo      
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
            // Todo
        }
    }
    

    注意:从 Android 3.2(API 级别 13)开始,“屏幕尺寸” 当设备在纵向和横向之间切换时也会发生变化 方向。因此,如果您想防止运行时重新启动 为 API 级别 13 或更高级别(如 由 minSdkVersion 和 targetSdkVersion 属性声明),你 除了“方向”之外,还必须包含“screenSize”值 价值。也就是说,你必须 decalare android:configChanges="orientation|screenSize"。但是,如果您的 应用程序以 API 级别 12 或更低级别为目标,那么您的活动始终 自行处理此配置更改(此配置更改 不会重新启动您的活动,即使在 Android 3.2 或 更高的设备)。

    (复制自:nmr

    【讨论】:

      【解决方案2】:

      在 manifest.xml 中为您的活动设置 configChanges 属性,如下所示: android:configChanges="orientation|keyboardHidden"

      【讨论】:

        【解决方案3】:

        对于播放视频等任务,您应该考虑使用TextureView

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-03-06
          • 2011-05-21
          • 2020-06-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-10
          • 2019-05-04
          相关资源
          最近更新 更多