我在我的应用中使用了VideoView组件,但是当我通过布局属性或代码来设置背景颜色时,这个背景颜色会覆盖我的视频,导致我看不到视频。
我在我的应用中使用了VideoView组件,但是当我通过布局属性或代码来设置背景颜色时,这个背景颜色会覆盖我的视频,导致我看不到视频。
VideoView
继承自SurfaceView
,它依赖于PorterDuff.Mode.CLEAR
来在视图层次结构中切一个洞,以便您可以看到底部的本地渲染表面。如果您让它填充一个实心颜色,您将无法看到视频。当视频正在播放时,您将无法看到背景,因此我假设您希望在没有视频时使用不同的颜色。在这种情况下,使用MediaPlayer
的OnCompletionListener
来改变事物...也许切换视图或扩展VideoView
并覆盖draw
,使其在播放时调用超类方法,并在其他时间执行不同的操作。
VideoView videoView = findViewById(R.id.videoView);
videoView.setZOrderOnTop(true);
我的解决方案是像往常一样将背景色设置好,并在准备就绪时寻找第一个帧并清除背景,也就是所谓的。
videoView.setOnPreparedListener(
mp -> {
videoView.seekTo(1);
videoView.setBackground(null);
});
但是,已知问题是会出现黑屏闪烁...