1

Android 4.2 の Chrome で xhr2 と blob responseType を使用して HTML5 ビデオを取得するのに苦労しています。このコードは、Chrome と Firefox デスクトップ、および Firefox Android 4.2 で完全に動作します (FF デスクトップでは、mp4 の代わりに webm ビデオを使用します)。

// 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 です)。

ご協力ありがとうございました!

4

2 に答える 2

1

これは間違いなくバグです。デスクトップ Chrome では動作するが Android では動作しない場合、99.5% の確率で修正が必要な問題です。

問題http://jsbin.com/uyehun/1を複製し、バグも報告しましたhttps://code.google.com/p/chromium/issues/detail?id=253465

于 2013-06-24T12:55:33.767 に答える