2016-02-05 84 views
0

我正在使用HTML5视频元素在Android WebView中播放视频。这对我很好,但使用它的唯一问题是视频元素会自动添加一个灰色的播放按钮。 我试过寻找一个API,并找不到任何有助于我的情况。我使用CSS与下面的样式也试过:Android WebView灰色播放按钮

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

而且我试图在影子DOM戳,但我无法找到与此相关的任何东西。

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

enter image description here

+0

我认为[这个链接](http://stackoverflow.com/questions/17346246/videojs-seeing-grey-boxes-in-android-mobile)应该为你工作。 – PHPExpert

+0

@PHPExpert很遗憾,它没有链接到videojs,但这是默认的

回答

2

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

+0

作品非常感谢! – Jan