我们正在使用JavaScript工作,开发一款远程音乐库组织管理器。我想知道是否有一种方法可以使用JavaScript下载MP3文件的最后128个字节,以获取其ID3标签。谢谢。
我们正在使用JavaScript工作,开发一款远程音乐库组织管理器。我想知道是否有一种方法可以使用JavaScript下载MP3文件的最后128个字节,以获取其ID3标签。谢谢。
仅靠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的服务器检索文件。
不使用服务器端编程语言:不行。
您可以使用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);
?>