我发现调用setRotation()
VideoView 后,VideoView 不再播放。Android 运行时不会引发任何错误,并且 VideoView 正确确定其裁剪尺寸,但仅显示为纯黑框。
这是一个已知的限制吗?如果是这样,还有另一种旋转 VideoViews 的方法吗?我正在使用 API 级别 16。
编辑:视频播放音频,但没有视频。也许底层的 SurfaceView 没有被重新定位?
我发现调用setRotation()
VideoView 后,VideoView 不再播放。Android 运行时不会引发任何错误,并且 VideoView 正确确定其裁剪尺寸,但仅显示为纯黑框。
这是一个已知的限制吗?如果是这样,还有另一种旋转 VideoViews 的方法吗?我正在使用 API 级别 16。
编辑:视频播放音频,但没有视频。也许底层的 SurfaceView 没有被重新定位?
回答我自己以防以后对某人有所帮助,这是 VideoView 的一个已知限制。引用此 Android 图形博客文章:
因为 SurfaceView 的内容不在应用程序的窗口中,所以不能有效地转换(移动、缩放、旋转)。这使得在 ListView 或 ScrollView 中使用 SurfaceView 变得困难。SurfaceView 也无法与 UI 工具包的某些功能正确交互,例如褪色边缘或 View.setAlpha()。
我能找到的唯一解决方案是将 VideoView 替换为新引入的TextureView,它仅适用于 API 级别 14 及更高级别。根据我的阅读,兼容性库中当前不可用。这个问题有一个如何使用 TextureView 播放视频的示例,它非常简单,您所失去的只是 VideoView 为您包装 MediaPlayer 的便利性。