我正在尝试使用.play()播放视频。 这是在应用程序与mraid,只有本机JavaScript。
我尝试使用.play()播放视频,只有在加载视频时才有效。
var video = document.getElementById('video');
video.play();
以上简单的2行就像魅力一样,只有在加载视频时才会起作用。
因此我必须确保使用setInterval
加载视频 var autoplay = setInterval(function(){
var video = document.getElementById('extVideo-tab1');
if(video !== null)
{
video.play();
clearInterval(autoplay);
}
},500);
我非常肯定它进入了if,但视频没有播放。
无法弄清楚它无法正常工作的原因。
请帮助,谢谢!
答案 0 :(得分:1)
作为替代方案,您可以尝试使用readyState
,因为:
var video = document.getElementById('video');
if( video.readyState === 4) {
// 4 -> HAVE_ENOUGH_DATA
//Enough data is available, the media can be played through to the end without interruption.
video.play();
}
答案 1 :(得分:0)
根据您的使用情况,我建议以下两种可能的解决方案之一: 如果您总是希望立即播放,请执行以下操作:
video.autoplay = true;
或者您可以使用readyState
:
var autoplay = setInterval(function(){
var video = document.getElementById('extVideo-tab1');
if(video.readyState === 4)
{
video.play();
clearInterval(autoplay);
}
},500);
答案 2 :(得分:0)
您是否有理由不能使用自动播放属性? https://developer.mozilla.org/en/docs/Web/HTML/Element/video
无论你是否应该使用onloadedmetadata事件或类似方式,你知道什么时候可以开始玩或寻找一个点(除非我遗漏了什么?)
document.getElementById('extVideo-tab1').addEventListener('loadedmetadata', function() {
this.play();
}, false)