我正在努力在 Android 4.2 上使用 xhr2 和 blob responseType 和 Chrome 获取 HTML5 视频。该代码在 Chrome 和 Firefox 桌面以及 Firefox Android 4.2 上完美运行(对于 FF 桌面,我使用 webm 视频而不是 mp4)。
// Taking care of prefix
window.URL = window.URL || window.webkitURL;
// This function download the video
var loadVideo = function() {
var xhr = new XMLHttpRequest();
xhr.addEventListener('load', addVideoFile, false);
xhr.open('GET', "videos/myvideo.mp4" , true);
xhr.responseType = 'blob';
xhr.send();
};
// this function sets the video source
var addVideoFile = function() {
if(4 == this.readyState && 200 == this.status) {
var video = document.getElementById('vid'),
blob = this.response;
video.src = window.URL.createObjectURL(blob);
console.log('video ready');
}
};
loadVideo();
谁能解释我为什么这不适用于 Android 上的 Chrome?如果我插上手机进行远程调试,控制台会显示“视频就绪”,提示视频已下载但无法播放,视频只是黑屏。
此外,如果我使用它来获取图像而不是视频,则此代码有效。是否有我不知道的限制,阻止下载超过一定大小的 Blob?(我的视频是 1.5 MB)。
非常感谢您的帮助!