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

use*_*560 7 java android rotation screen-orientation android-videoview

我目前正在开发专门用于Android的GoogleTV设备的应用程序,其中使用或强制应用程序的方向除了横向之外的任何其他任何东西都没有启用,并且将来不会启用我想象的,实际上应用程序只是崩溃了试图跑setRequestedOrientation();

Videoviews继承了普通视图的位置属性,Stuff like SetX,SetYSetRotation.

您可以将视频视图的旋转设置为90度,但实际的视频缓冲不会旋转.我已经尝试了从使用旧媒体播放器> surfaceview.getHolder().lockcanvas().rotate(degrees)以各种可想象的方式,到覆盖onDraw扩展普通类的自定义视频视图的方法,其中没有一个我可以成功地工作.

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

提前致谢.

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

Cyn*_*era 1

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

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

更多细节在这里:Rotating an android VideoView