等待HTML5视频加载

前端之家收集整理的这篇文章主要介绍了等待HTML5视频加载前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个视频标签,我动态地更改其来源,因为我允许用户数据库中的一些视频中进行选择。问题是,当我更改src属性时,视频不会加载,即使我告诉它。

这里是我的代码

$("#video").attr('src','my_video_'+value+'.ogg');
$("#video").load();
while($("#video").readyState !== 4) {
        console.log("Video is not ready");
};

代码仍然处于无限循环中。

任何帮助?

编辑:

对伊恩Devlin:

//add an listener on loaded Metadata
v.addEventListener('loadeddata',function() {
    console.log("Loaded the video's data!");
    console.log("Video Source: "+ $('#video').attr('src'));
    console.log("Video Duration: "+ $('#video').duration);
},false);

好的,这是我现在的代码。来源打印很好,但我仍然无法获得持续时间:

解决方法

你不需要jQuery,因为有一个 Media API,为您提供所有你需要的。
var video = document.getElementById('myVideo');
video.src = 'my_video_' + value + '.ogg';
video.load();

Media API还包含一个load()方法:“使元素重置并开始从头开始选择和加载新的媒体资源”。

(Ogg不是最好的格式,因为它只支持有限数量的浏览器,建议使用WebM和MP4来覆盖所有主流浏览器 – 您可以使用canPlayType()功能来决定播放哪一种) 。

然后,您可以等待loadedmetadataloadeddata(取决于您想要的)事件触发:

video.addEventListener('loadeddata',function() {
   // Video is loaded and can be played
},false);

猜你在找的HTML5相关文章