Android 4.0.4 Webview - html5视频自动播放randomally无法正常工作

时间:2014-03-28 13:10:41

标签: javascript android html5 webview html5-video

我正在使用Webview并拥有html5视频标记:

<video id="video" class="video-full-screen" preload="none"    poster="{poster URL here}" webkit-playsinline>
    <source id="mp4" src="{Video mp4 source here}" type="video/mp4">
    <p>Your user agent does not support the HTML5 Video element.</p>
</video>

对于Android API 17+的自动播放,我使用视频标记上的autoplay="autoplay"属性+我使用setMediaPlaybackRequiresUserGesture(设置为false)。

对于低于17的API级别,我使用:

var video = $('video');
video.bind("loadeddata", function(){
   setTimeout(function(){
       video[0].play();
   },100);
}); 

这适用于所有设备,但Android 4.0.4(三星galaxy s3)。在这个设备上它随机工作(我无法找到任何复制场景。它只是随机工作)。 我注册了&#34;播放&#34;事件:

video.bind("playing", function(){
    console.log("playing");
}); 

我发现视频无法播放时会触发此事件。我看到里面有玩家形象的灰色屏幕。即使几秒钟后,视频的当前时间也会保持为0。

2 个答案:

答案 0 :(得分:0)

您可能需要在java接口方法中覆盖@JavascriptInterface。

所以,将代码更改为

 @JavascriptInterface
 video.bind("playing", function(){
 console.log("playing");
 }); 
像这样。希望它能帮助你。

答案 1 :(得分:0)

这里是演示

http://jsfiddle.net/dineshk/fvnr0zex/2/

这在我的应用程序中绝对正常工作。

当视频标记使用Javascript附加时,这将起作用。

这里是Javascript代码

 var newHtml = '<video width="100%" height="30%" autoplay controls  id="myVideos" src="https://dev.ocutagsnap.com:8080/PearsonVideos/videos/tumb10.mp4" ></video>';
$("#newone").append(newHtml);