5

例http://www.html5rocks.com/en/tutorials/file/dndfiles/#tocに示すように、FileReader.readAsBinaryString(Blob|File) を使用してビデオ ファイルの内容をバイナリ文字列として読み取ろうとしています。 -reading-filesを実行し、ビデオを保存して再生します。

以下を使用して(webmビデオファイルを使用して)試しましたが、「サポートされていないビデオ形式またはMIMEタイプ」が表示されます。

function readBlob (file, startByte, endByte, callback) {
                    console.log('readBlob():', file, startByte, endByte);

                    var reader = new FileReader();
                    reader.onloadend = function (evt) {
                        if (evt.target.readyState == FileReader.DONE) {
                            callback(evt.target.result);
                            var player = document.getElementById('player');
                            player.src = "data:video/webm;base64,"+evt.target.result;
                            player.load();
                            player.play();
                        }
                    }
                    var blob = file.slice(startByte, endByte);
                    reader.readAsBinaryString(blob);
                }

ビデオ ファイル (使用されているブラウザでサポートされているファイル) をバイナリ文字列として読み取り、ブラウザの HTML5 ビデオ プレーヤーで再生できるかどうかは誰にもわかりませんか?

ティア

4

2 に答える 2

9

あなたの問題はplayer.src

player.src = "data:video/webm;base64,"+evt.target.result;

データがbase64であることを期待していますが、バイナリ文字列を与えています。

btoaを使用して base64 にエンコードしてみてください

player.src = "data:video/webm;base64,"+btoa(evt.target.result);
于 2013-04-27T10:50:32.573 に答える
3

どうFileReader.readAsDataURL(Blob|File)ですか?
html5rocks-link でも説明されています。

于 2013-06-16T07:59:44.233 に答える