【问题标题】:Rotating the actual videobuffer in Videoview在 Videoview 中旋转实际的视频缓冲区
【发布时间】:2012-01-09 19:07:35
【问题描述】:

我目前正在开发一个专门用于 android 的 GoogleTV 设备的应用程序,其中未启用或强制将应用程序的方向设置为横向以外的任何内容,并且根据我的想法,将来也不会启用,实际上是该应用程序在尝试运行 setRequestedOrientation() 时简单地崩溃;

视频视图继承了普通视图的位置属性,例如SetXSetYSetRotation

您可以将视频视图的旋转设置为 90 度,但实际的视频缓冲区不会旋转。 我尝试了各种方法,从使用旧媒体播放器 > surfaceview.getHolder().lockcanvas().rotate(degrees) 到覆盖扩展普通类的自定义视频视图的 onDraw 方法,但我都无法成功。

简而言之,如何在不改变设备方向的情况下旋转视频视图中的实际视频? 如果你有一个旋转的视频视图的工作示例,它的内容也旋转了,请解释一下你是如何工作的。

提前致谢。

我想请您注意,我们正在为 android 3.1 开发,并且到目前为止所有内容都是动态编码的,所有图像视图和视频视图都是通过代码创建的,只有我们用于 Z 索引项目的特定布局有在layout.xml 文件中定义。

【问题讨论】:

    标签: java android rotation android-videoview screen-orientation


    【解决方案1】:

    即使合成矩阵设置正确并使用了旋转属性,VideoView也不支持视频旋转。

    你可以做的是使用TextureView并设置它的属性rotation="90"(例如)。然后它会旋转帧,但纵横比是你需要自己处理的。为此,您可以使用 textTureView.setScaleX((screenHeight * 1.0f) / screenWidth)

    更多详情在这里:Rotating an android VideoView

    【讨论】:

      猜你喜欢
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多