【问题标题】:Setting background colour for VideoView hides the video为 VideoView 设置背景颜色会隐藏视频
【发布时间】:2014-03-14 10:42:17
【问题描述】:

我在我的应用程序中使用 VideoView,当我使用布局属性或代码本身设置背景颜色时,背景颜色覆盖在我的视频顶部,我看不到它。

【问题讨论】:

    标签: android android-mediaplayer android-videoview


    【解决方案1】:

    VideoView 扩展 SurfaceView,它依赖于 PorterDuff.Mode.CLEAR 在视图层次结构中切出一个洞,以便您可以看到下面的原生渲染表面。如果你让它用纯色填充自己,你将无法看到视频。播放视频时,您将看不到背景,因此我假设您希望在没有视频的情况下将其设置为不同的颜色。在这种情况下,使用MediaPlayer 的OnCompletionListener 来改变事情......也许切换视图或扩展VideoView 并覆盖draw 以便它在播放时调用超类方法并在其他时间做一些不同的事情.

    【讨论】:

      【解决方案2】:

      你可以这样做:

      VideoView videoView = findViewById(R.id.videoView);
      
      videoView.setZOrderOnTop(true);
      

      【讨论】:

        【解决方案3】:

        我的解决方案是像往常一样设置背景颜色,并在准备好的情况下,寻找第一帧并清除背景,也就是。

        videoView.setOnPreparedListener(
            mp -> {
              videoView.seekTo(1);
              videoView.setBackground(null);
            });
        

        但是,一个已知的问题是会出现黑色闪光...

        【讨论】:

          猜你喜欢
          • 2023-03-06
          • 2017-11-17
          • 2010-11-08
          • 2020-12-06
          • 1970-01-01
          • 1970-01-01
          • 2011-02-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多