我们实际上正在使用javascript处理远程音乐库管理器,我想知道是否有一种方法可以使用js下载最后128字节的MP3文件以获取其ID3标签。感谢。
答案 0 :(得分:9)
只有JavaScript才能做到这一点。您需要在服务器上使用某些东西(完全取决于您的服务器端技术)才能读取文件的相关部分。然后在JavaScript中,您可以调用该服务器端部分。
HTTP协议支持部分下载文件(这就是它)。但当然,HTTP对MP3文件一无所知,因此您必须知道JavaScript中包含ID3标记的文件范围。
似乎比我最初期望在纯JavaScript中只下载一大块URL更可行:
xhr = new XMLHttpRequest();
xhr.open("GET", "http://<your domain>/");
xhr.setRequestHeader("Range", "bytes=-256");
xhr.send();
请求远程文件的最后256个字节。
请注意,您的请求当然受到通常的同源限制,因此您只能使用它来从包含原始HTML / JavaScript的服务器中检索文件。
答案 1 :(得分:1)
使用服务器端编程语言:不。
您可以使用Ajax和PHP(或任何其他编程语言)来获取ID3标记。
使用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);
?>