11

FileReader readAsArrayBuffer プロパティを使用してローカル ファイルを読み込もうとしています。読み取りが成功し、「onload」コールバックで、reader.result に Array Buffer オブジェクトが表示されます。しかし、Array Buffer は空です。長さは設定されますが、データは設定されません。このデータを取得するにはどうすればよいですか?

これが私のコードです

<!DOCTYPE html>
<html>

<body>
    <input type="file" id="file" />
</body>

<script>
    function handleFileSelect(evt) {

        var files = evt.target.files; // FileList object

        var selFile = files[0];
        var reader = new FileReader();
        reader.onload = function(e) {
            console.log(e.target.result);
        };

        reader.onerror = function(e) {
            console.log(e);
        };
        reader.readAsArrayBuffer(selFile);
    }


    document.getElementById('file').addEventListener('change', handleFileSelect, false);
</script>

</html>

reader.result のコンソール出力

e.target.result
ArrayBuffer {}
e.target.result.byteLength
25312

このデータを取得する方法を誰か教えてもらえますか? セキュリティ上の問題はありますか?エラーはありません。onerror は実行されません。

コメントから:バッファの内容にアクセスする方法を教えてください。私は実際にオーディオファイルを再生しようとしていますAudioContext...そのためにはバッファデータが必要です...

4

2 に答える 2