【问题标题】:Android WebView gray play buttonAndroid WebView 灰色播放按钮
【发布时间】:2016-02-05 09:33:43
【问题描述】:

我正在使用 HTML5 视频元素在 Android WebView 中播放视频。这对我很有用,但使用它的唯一问题是视频元素会自动添加一个灰色播放按钮。 我尝试搜索 API,但找不到任何对我的情况有帮助的东西。我还尝试使用具有以下样式的 CSS:

video.mobile_controls::-webkit-media-controls-fullscreen-button 
{
    display: inline !important; // Also used "display:none"
}

我进一步尝试在 shadow dom 中戳,但找不到与此相关的任何内容。

所以问题是我如何删除这个灰色按钮。 这是一张供参考的图片:

【问题讨论】:

  • 我认为this link 应该适合你。
  • @PHPExpert 遗憾的是,该链接不是用于 videojs,但这是默认的

标签: android css html html5-video


【解决方案1】:

问题在于视频海报。但是有更好的方法来解决这个问题,方法是从 WebChromeClient 扩展并覆盖 getDefaultVideoPoster();

解决办法如下:

import android.graphics.Bitmap;
import android.webkit.WebChromeClient;

public class WebChromeClientCustomPoster extends WebChromeClient {
    @Override
    public Bitmap getDefaultVideoPoster() {
        return Bitmap.createBitmap(10, 10, Bitmap.Config.ARGB_8888);
    }
}

然后使用这个客户端来代替:

WebChromeClientCustomPoster chromeClient = new WebChromeClientCustomPoster();
mWebView.setWebChromeClient(chromeClient);

经过一些肮脏的黑客攻击后,我们发现滥用海报属性解决了这个问题。我们通过执行以下操作解决了这个问题:

videoElement.setAttribute("poster", "nope");

视频元素将使用值“nope”作为其海报。由于 nope 不是有效的 URL,因此视频元素不会替换海报,也不会显示海报。

【讨论】:

    【解决方案2】:

    我们的团队也曾尝试解决同样的问题一段时间。最终对我们有用的是在 WebView webView.settings.mediaPlaybackRequiresUserGesture = false 上设置此设置。希望它也可以帮助其他人遇到这个问题。

    【讨论】:

      猜你喜欢
      • 2017-11-21
      • 2018-08-18
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 2017-08-01
      • 2023-03-19
      • 1970-01-01
      • 2012-12-16
      相关资源
      最近更新 更多