HTML5视频,如何检测视频是否完全缓冲?
在播放html5视频之前,我必须完全缓冲 但我找不到一个通用的解决方案HTML5视频,如何检测视频是否完全缓冲?,html,video,internet-explorer-9,buffer,Html,Video,Internet Explorer 9,Buffer,在播放html5视频之前,我必须完全缓冲 但我找不到一个通用的解决方案 我将视频设置为预加载=‘自动’ 我创建了一个setInterval,其中一个函数每200ms查找video.buffered.end(0)属性,并将其与视频持续时间进行比较 在Chrome和Firefox上,video.buffered.end(0)在一段时间后达到视频持续时间=>OK! 在IE9上,视频缓冲结束(0)达到视频持续时间的+/-85%,并停止进行。但网络显示视频已满负荷 我尝试使用video.seakabl
- 我将视频设置为预加载=‘自动’李>
- 我创建了一个setInterval,其中一个函数每200ms查找video.buffered.end(0)属性,并将其与视频持续时间进行比较
<!DOCTYPE html>
<html>
<head>
<title>Preload video via AJAX</title>
</head>
<body>
<script>
console.log("Downloading video...hellip;Please wait...")
var xhr = new XMLHttpRequest();
xhr.open('GET', 'BigBuck.m4v', true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
console.log("got it");
var myBlob = this.response;
var vid = (window.webkitURL ? webkitURL : URL).createObjectURL(myBlob);
// myBlob is now the blob that the object URL pointed to.
var video = document.getElementById("video");
console.log("Loading video into element");
video.src = vid;
// not needed if autoplay is set for the video element
// video.play()
}
}
xhr.send();
</script>
<video id="video" controls autoplay></video>
</body>
</html>
通过AJAX预加载视频
console.log(“正在下载视频…hellip;请稍候…”)
var xhr=new XMLHttpRequest();
xhr.open('GET','BigBuck.m4v',true);
xhr.responseType='blob';
xhr.onload=函数(e){
如果(this.status==200){
console.log(“明白了”);
var myBlob=this.response;
var vid=(window.webkitURL?webkitURL:URL).createObjectURL(myBlob);
//myBlob现在是对象URL指向的blob。
var video=document.getElementById(“视频”);
log(“将视频加载到元素”);
video.src=vid;
//如果为视频元素设置了自动播放,则不需要
//视频播放()
}
}
xhr.send();
这里有更多参考资料。这可能是您问题的答案-。除了IE9不支持createObjectURL之外