Android 7 上的 VideoView 错误

Posted

技术标签:

【中文标题】Android 7 上的 VideoView 错误【英文标题】:VideoView bug on Android 7 【发布时间】:2017-11-24 12:39:11 【问题描述】:

我正在使用 VideoView 在我的应用中播放视频。在第一个片段中,我有占据屏幕一半的 VideoView。点击视频会打开带有全屏 VideoView 的新片段。片段具有完全独立的布局,具有不同的 VideoView 实例。

错误案例:我在第一个片段上开始播放 -> 在播放期间点击视频 -> 全屏视频打开 -> 我按下播放按钮,我看到全屏视频与前一个片段的视频重叠。有人遇到过这个问题吗?

此错误在 android API 24 上仍然存在,但在 Android N 上一切正常。

【问题讨论】:

请分享您的错误日志 需要更多,没有代码或屏幕截图无法提供帮助 在 viewpager 中的 videoView 有同样的问题。您的问题解决了吗? 是的,我刚刚使用了另一个播放器,基于纹理视图。 VideoView 中描述的行为无法解决 - 它本质上忽略了布局层次结构。 【参考方案1】:

我遇到了同样的问题并找到了以下解决方法:从片段切换时将视频视图的高度设置为 0。请注意,您需要将切换延迟几毫秒(对我来说是 100 毫秒)才能正常工作:

 val layoutParams = videoView.layoutParams
 layoutParams.height = 0
 videoView.layoutParams = layoutParams
 videoView.requestLayout()
 Handler(Looper.getMainLooper()).postDelayed(
     //Switch fragment here
 , 100L)

【讨论】:

以上是关于Android 7 上的 VideoView 错误的主要内容,如果未能解决你的问题,请参考以下文章

将设备上的视频流式传输到 videoview - Android

VideoView或WebView的文件协议支持?

Android MediaPlayer/VideoView 错误 (1, -2147483648)

无法播放视频 VideoView Android 12(错误 (1, -2147483648))

Android VideoView 我随机收到“无法播放此视频”错误

Android VideoView 重叠