安卓4.0.4中的Webview——HTML5视频自动播放随机不起作用。

3
我正在使用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)。

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

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

这个功能在所有设备上都可以使用,但是在Android 4.0.4(三星Galaxy S3)上无法正常工作。在这个设备上,它的工作是随机的(我找不到任何复现场景,它只是随机地工作)。 我注册了“ playing”事件:

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

我看到当视频无法播放时,会触发这个事件。我看到一个灰色屏幕,里面有播放器图像。即使过了几秒钟,视频的当前时间仍然为0。

2个回答

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);

0
你可能需要在你的Java接口方法中重写@JavascriptInterface。 因此,将你的代码更改为:
 @JavascriptInterface
 video.bind("playing", function(){
 console.log("playing");
 }); 

像这样。希望能帮到你。


这段代码并没有做任何事情(只是绑定了“playing”事件并写入日志)。这有什么帮助吗??? - Yaniv Efraim
你试过我和你分享的内容了吗?直到你覆盖此内容,你的函数将不会被调用。请添加并让我知道结果。这适用于4.3及以上版本。 - chain
好的,谢谢。我会尝试并更新。你看到我的问题只出现在Android 4.0.4上了吗? - Yaniv Efraim
“video.bind(“playing”,function(){...})”写在HTML页面中。我不明白你在这里的意思(你的语法是不可能的)。 - Yaniv Efraim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接