在Videoview中旋转实际的视频缓冲区

时间:2011-11-30 14:50:22

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

我目前正在开发专门针对Android的GoogleTV设备的应用程序,其中使用或强制将应用程序的方向应用于除横向之外的任何其他内容,并且将来不会根据我的想法启用,实际上应用程序在尝试运行setRequestedOrientation();

时会崩溃

视频观察从普通视图继承位置属性,像SetXSetYSetRotation这样的东西。

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

简而言之,如何在视频内旋转ACTUAL视频,而无需更改设备的方向? 如果您有一个旋转视频视图的工作示例,其内容也会旋转,请说明您是如何工作的。

提前致谢。

我希望你注意到我们正在为Android 3.1开发,并且到目前为止所有内容都是动态编码的,所有的imageview和videoview都是通过代码创建的,只有我们用于Z索引项目的特定布局有已在layout.xml文件中定义。

1 个答案:

答案 0 :(得分:1)

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

您可以做的是使用TextureView并设置其属性rotation =“90”(例如)。然后它将旋转帧,但宽高比是您需要处理自己的东西。为此,您可以使用textTureView.setScaleX((screenHeight * 1.0f)/ screenWidth)

详情请见Rotating an android VideoView