我正在使用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。
答案 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);