Android WebView灰色播放按钮

f.l*_*nzo 0 css html5 android html5-video

我正在使用HTML5视频元素在Android WebView中播放视频。这对我来说很棒,但是使用它的唯一问题是视频元素会自动添加一个灰色播放按钮。我尝试搜索API,但找不到任何可以解决我问题的方法。我还尝试使用以下样式的CSS:

video.mobile_controls::-webkit-media-controls-fullscreen-button 
{
    display: inline !important; // Also used "display:none"
}
Run Code Online (Sandbox Code Playgroud)

此外,我尝试戳入影子dom,但找不到与此相关的任何内容。

所以问题是我如何删除此灰色按钮。这是供参考的图像:

在此处输入图片说明

f.l*_*nzo 7

问题是视频海报。但是,通过从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);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后通过以下方式使用此客户端:

WebChromeClientCustomPoster chromeClient = new WebChromeClientCustomPoster();
mWebView.setWebChromeClient(chromeClient);
Run Code Online (Sandbox Code Playgroud)

经过一番肮脏的骇客攻击后,我们发现滥用发帖人属性可以解决此问题。我们通过执行以下操作解决了此问题:

videoElement.setAttribute("poster", "nope");
Run Code Online (Sandbox Code Playgroud)

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