0

HTML5 FileReader と File API を使用して、オフラインの音楽プレーヤーを作成しています。これには、基本的なプレイリスト機能も含まれます。

現在、ユーザーが複数のファイルを選択すると、それらのファイルを ArrayBuffer として取得しています。

問題は、これらの返されたファイルを通常の配列に保存して、後でプレイリストで使用できるようにすることです。

Javascriptでそれをどのように達成できますか?

function load_files(){
    var files = document.getElementById('file').files;
    var k = files.length;
    for (var i = 0; i < k; i++) {
        var reader = new FileReader();
        reader.onload = function(e) {
            playlist[i] = this.result;
        };
        reader.readAsArrayBuffer(this.files[i]);
        alert(song_counter); 
        initSound(playlist[song_counter]);
    }
}
4

1 に答える 1

1

ArrayBuffer を配列に格納して、そこからファイルを再度読み取ることはできません。バッファーは、固定長のバイトをロードし、再生するバイトが不足しないように、それらを継続して受信するために使用されます。

代わりに、ArrayBuffer から byteArray にすべてのバイトを読み取り、byteArrays を配列に格納する必要があります。その後、バイト配列からすべての曲を再生できます。

既に曲をローカルに持っている場合 (質問にはファイルの取得元が記載されていないため)、ファイルへのパスを保存して、そこからファイルをリロードするだけです。

これが理にかなっていることを願っています。

于 2014-02-28T18:13:34.650 に答える