[英]read id3 tags from mp3 using javascript
我知道這個問題以前在這里被問過,但我的情況有點不同。 我正在制作一個 chrome 應用程序,因此我可以訪問它支持的所有最新 JavaScript 文件 api,而不必擔心兼容性。 更重要的是,我真的很想自己做這個..即沒有任何圖書館。 教程或指南就可以了。 畢竟這到底有多難?
基本上我有用戶添加的mp3,我希望能夠閱讀藝術家和專輯等最基本的信息(實際上,只有這兩個,但其他人不會造成任何傷害)。
我相信我知道 id3 標簽是什么以及如何讀取信息。 我只需要看一次它的實際效果。 謝謝
不再需要使用 binaryajax.js 或 id3 解析器庫。 在 Chrome 中,您可以使用FileReader
和DataView
來讀取和提取 ID3v1 信息。 這只是幾行:
http://ericbidelman.tumblr.com/post/8343485440/reading-mp3-id3-tags-in-javascript
這個庫有很好的文檔。 我愛 GitHub
https://github.com/leetreveil/node-musicmetadata
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);
});
這將 output 標准音樂元數據:
{ 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;
更不用說大量的純 Javascript AJAX 工作了。
沒有理由重新發明這個輪子。 但是,如果您想查看代碼並出於任何原因重寫它,這里有兩個庫文件:
如果你真的想刪除 AJAX 中的任何一個,然后從讀取你已經擁有的文件開始(不知何故,沒有 AJAX),第二個鏈接有一個 function,巧合的是, readTagsFromData
。 我建議你從那里開始實現你的目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.