我很努力在Android 4.2上使用xhr2和blob responseType與Chrome獲取HTML5視頻。該代碼完全適用於Chrome和Firefox桌面以及Firefox Android 4.2(使用FF桌面,我使用的是webm視頻而不是mp4)。在Chrome中獲取BLOB Android
// 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)。
非常感謝您的幫助!
非常感謝您花時間做到這一點! – JuCachalot