微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用javascript从mp3读取id3标签

如何解决使用javascript从mp3读取id3标签

| 我知道之前曾有人问过这个问题,但我的情况有所不同。我正在制作chrome应用程序,因此我可以访问它支持的所有最新JavaScript文件api,而不必担心兼容性。更重要的是,我真的很想自己做..即没有任何图书馆。教程或指南即可。毕竟这到底有多困难? 基本上,我有用户添加的mp3 \,我希望能够阅读艺术家和专辑之类的最基本信息(实际上,只有这两个信息对其他人没有任何危害)。 我相信我对id3标签是什么以及如何读取信息有想法。我只需要看一次即可。 谢谢     

解决方法

        不再需要使用binaryajax.js或id3解析器库。在Chrome at,您可以使用
FileReader
DataView
读取和提取ID3v1信息。仅几行: http://ericbidelman.tumblr.com/post/8343485440/reading-mp3-id3-tags-in-javascript     ,        这个库有很好的文档。我爱GitHub https://github.com/leetreveil/node-musicmetadata API
var fs = require(\'fs\');
var mm = require(\'musicmetadata\');

//create a new parser from a node ReadStream
var parser = new mm(fs.createReadStream(\'sample.mp3\'));

//listen for the metadata event
parser.on(\'metadata\',function (result) {
  console.log(result);
});
这将输出标准音乐元数据:
{ artist : [\'Spor\'],album : \'Nightlife,Vol 5.\',albumartist : [ \'Andy C\',\'Spor\' ],title : \'Stronger\',year : \'2010\',track : { no : 1,of : 44 },disk : { no : 1,of : 2 },picture : [ { format : \'jpg\',data : <Buffer> } ]
}
    ,        正如@joekarl所指出的,有一些库可以为您执行此操作。我看到了您对信息的请求,因此您可以自己进行操作,但这是nihilogic.dk库中大约500行以上的代码:
var iLong = bBigEndian ? 
            (((((iByte1 << 8) + iByte2) << 8) + iByte3) << 8) + iByte4
            : (((((iByte4 << 8) + iByte3) << 8) + iByte2) << 8) + iByte1;
        if (iLong < 0) iLong += 4294967296;
        return iLong;
更不用说大量的纯Java AJAX工作了。 没有理由重新发明这个轮子。但是,如果您出于任何原因要查看代码并重写代码,请参见以下两个库文件: 二进制ajax库 id3解析器 如果您真的想剪切掉任何AJAX并只是从读取已经拥有的文件开始(不使用AJAX,则不然),第二个链接的功能恰好是
readTagsFromData
。我建议您从那里开始实现自己的目标。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。