6

私たちは実際にjavascriptを使用してリモートミュージックライブラリオーガナイザーに取り組んでおり、ID3タグを取得するためにjsを使用してMP3ファイルの最後の128バイトをダウンロードする方法があるかどうか知りたいです。ありがとう。

4

2 に答える 2

12

JavaScriptだけではできません。ファイルの関連部分を読み取るには、サーバー上に何かが必要です (正確にはサーバー側のテクノロジに依存します)。次に、JavaScript でそのサーバー側の部分を呼び出すだけです。

更新 1

HTTP プロトコルは、ファイルを部分的にダウンロードすることをサポートしています (これが何なのか)。しかしもちろん、HTTP は MP3 ファイルについて何も知らないので、JavaScript で ID3 タグが含まれるファイルの範囲を知る必要があります。

更新 2

純粋な JavaScript で URL のチャンクだけをダウンロードすることは、最初に予想したよりもはるかに実行可能に思えます。

xhr = new XMLHttpRequest();
xhr.open("GET", "http://<your domain>/");
xhr.setRequestHeader("Range", "bytes=-256");
xhr.send();

これは、リモート ファイルの最後の 256 バイトを要求します。

もちろん、リクエストには通常の同一オリジンの制限が適用されるため、元の HTML/JavaScript を含むサーバーからファイルを取得するためにのみ使用できることに注意してください。

于 2012-12-04T14:07:09.220 に答える
1

サーバー側のプログラミング言語を使用しない場合: いいえ。

ID3 タグを取得するには、Ajax と PHP (またはその他のプログラミング言語) を使用できます。

jQuery を使用すると、次のようになります。

function getInfo(func) {
$.ajax({
    url: "mp3info.php?file=" + url,
    dataType: "json",
    ready: function(result) {
        func(result);
    }
});
}

そして、あなたはそれを次のように使います:

getInfo(function(mp3info) {
    alert(mp3info.id3);
});

次に、PHP ファイルは次のようになります。

<?php
$info = array(); //The MP3 info array
echo json_encode($info, true);
?>
于 2012-12-04T14:09:10.303 に答える