【发布时间】:2013-10-28 21:25:37
【问题描述】:
我正在尝试使用 XMLHttpRequest 将大型视频加载到标签中。我已经使用以下代码成功地将它用于处理小型视频文件:
window.URL = window.URL || window.webkitURL;
var xhr = new XMLHttpRequest();
xhr.open('GET', 'quicktest.mp4', true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
var video = document.createElement('video');
video.src = window.URL.createObjectURL(this.response);
video.autoplay = true;
document.body.appendChild(video);
};
xhr.send();
如果视频很小,没问题。但是,我的文件非常大,并且会产生内存不足错误,从而导致 Chrome 崩溃。 Firefox 甚至都不会完成加载它。经过数小时的搜索人们建议“以块的形式下载文件”并将它们重新组合在一起,然后再将其发送到标签后,我已经看到了两个单独的实例,我什至发现了一个非常处理这个问题的 promising solution确切的场景。但是,对于实施此解决方法,我完全不知所措。如果有人能指出我正确的方向.. 需要什么来实现此修复或任何内容,我将非常感激。
如果好奇我为什么还要费心使用 XHR 加载视频.. 我想自动播放我的大视频,但 Chrome 总是跳枪并立即开始播放,认为它可以播放整个内容而无需问题(不可靠的“canplaythrough”事件),我似乎无法找到一种方法让 Chrome 在播放之前缓冲整个视频。所以我求助于 XHR,但没有运气。
【问题讨论】:
标签: javascript xmlhttprequest html5-video buffer blob