我发现在VideoView上调用setRotation()
后,该视频不再播放。 Android运行时不会抛出任何错误,VideoView会正确确定其裁剪尺寸,但仅显示为纯黑框。
这是一个已知的限制吗?如果有,还有另一种旋转VideoViews的方法吗?我正在使用API级别16。
修改:视频播放音频,但没有视频。也许底层的SurfaceView没有被重新定位?
答案 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的便利性。