javascript - 视频播放在setInterval中无效

时间:2014-07-16 03:23:19

标签: javascript video

我正在尝试使用.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,但视频没有播放。

无法弄清楚它无法正常工作的原因。

请帮助,谢谢!

3 个答案:

答案 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)