【发布时间】:2014-03-14 10:42:17
【问题描述】:
我在我的应用程序中使用 VideoView,当我使用布局属性或代码本身设置背景颜色时,背景颜色覆盖在我的视频顶部,我看不到它。
【问题讨论】:
标签: android android-mediaplayer android-videoview
我在我的应用程序中使用 VideoView,当我使用布局属性或代码本身设置背景颜色时,背景颜色覆盖在我的视频顶部,我看不到它。
【问题讨论】:
标签: android android-mediaplayer android-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);
});
但是,一个已知的问题是会出现黑色闪光...
【讨论】: