Android WebView灰色播放按钮

时间:2016-02-05 09:33:44

标签: android css html5 html5-video

我正在使用HTML5视频元素在Android WebView中播放视频。这对我来说很有用,但使用它的唯一问题是视频元素会自动添加灰色播放按钮。 我已经尝试过搜索API,找不到任何可以帮助我的案例。我也尝试使用具有以下样式的CSS:

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

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

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

enter image description here

2 个答案:

答案 0 :(得分:4)

问题是视频海报。但是有一种更好的方法可以通过从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,因此视频元素不会替换海报,也不会显示海报。

答案 1 :(得分:0)

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