2013-06-19 2 views
1

Android 4.2에서는 Chrome에서 xhr2 및 blob responseType을 사용하여 HTML5 비디오를 가져 오려고합니다. 이 코드는 Chrome, Firefox 바탕 화면 및 Firefox Android 4.2 (FF 바탕 화면, mp4 대신 webm 비디오 사용)에서 완벽하게 작동합니다.Chrome Android에서 BLOB 가져 오기

// 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입니다.

대단히 감사합니다.

답변

1

이것은 가장 확실한 버그입니다. 데스크톱 크롬에서 작동하지만 Android에서는 작동하지 않는 무언가를 얻는다면 99.5 %의 시간이 문제를 해결해야합니다.

) (대신 window.URL.createObjectUrl의) 나는 당신의 문제 http://jsbin.com/uyehun/1를 복제하고 난 버그는 window.webkitURL.createObjectUrl을 (사용할 필요 안드로이드 4.0-4.3에 대한 http://caniuse.com/bloburls 당 너무 https://code.google.com/p/chromium/issues/detail?id=253465

+0

시간을내어 주셔서 감사합니다. – JuCachalot

0

을 제기했다 .

사실이 URL을 재생할 동영상 요소를 실제로 얻을 수는 없지만 이렇게하면 얼룩 URL을 생성 할 수 있습니다.

관련 문제