在setRotation()之后没有播放Android VideoView

时间:2013-01-27 09:28:27

标签: android android-layout android-videoview

我发现在VideoView上调用setRotation()后,该视频不再播放。 Android运行时不会抛出任何错误,VideoView会正确确定其裁剪尺寸,但仅显示为纯黑框。

这是一个已知的限制吗?如果有,还有另一种旋转VideoViews的方法吗?我正在使用API​​级别16。

修改:视频播放音频,但没有视频。也许底层的SurfaceView没有被重新定位?

1 个答案:

答案 0 :(得分:1)

要回答自己,以防以后有人帮助,这是VideoView的一个已知限制。引自this Android graphics blog post

  

由于SurfaceView的内容不在应用程序窗口中,因此无法有效地转换(移动,缩放,旋转)。这使得在ListView或ScrollView中使用SurfaceView变得很困难。 SurfaceView也无法与UI工具包的某些功能正确交互,例如淡化边缘或View.setAlpha()。

我能找到的唯一解决方案是使用新引入的TextureView替换VideoView,该版本仅在API级别14及更高版本中可用。根据我的阅读,它目前在兼容性库中不可用。 This question有一个如何使用TextureView播放视频的例子,它很简单,你输的就是为你包装MediaPlayer的VideoView的便利性。