2017-07-04 19:54
#HTML5 #Node.js #音乐 #ES6一个简单的 mp3 文件标签解析器。你可以用它来获取 mp3 音乐文件中的专辑图片、专辑名称、年代,风格等信息。
npm install mutag
在浏览器中,首先引入 dist/mutag.min.js
,然后使用
window.mutag
即可。
<script src="../dist/mutag.min.js"></script>
<script>
const mutag = window.mutag;
// the type of input element is 'file'
const inputDOM = document.querySelector('.file-input');
.addEventListener('change', e => {
inputDOMconst file = e.target.files[0];
.fetch(file).then((tags) => {
mutag//get all tags
console.log(tags);
;
}), false); }
在 nodejs 中,用 require
方法引入。
const fs = require('fs');
const mutag = require('mutag');
.readFile('path/to/file.mp3', (err, data) => {
fs.fetch(data).then((tags) => {
mutag//get all tags
console.log(tags);
;
}); })
解析 mp3 文件并返回一个 Promise 对象。 参数为 Blob
对象,在浏览器中,Blob 对象可以监听 input
(属性
type="file"
)的 onchange
事件,或者监听元素的
ondrop
事件、或者 Ajax 传递得到。在 nodejs 中,通过
fs.readFile()
文件读取得到。 返回值为 Promise 对象,调用其
then
方法,如果没有出错,就可以在回调函数
resolve
中获取所有存在的 mp3文件的标签。
返回 mutag 的版本号。
mutag 解析的 ID3 版本是 v2.3,一些常见的标签如下:
标签 | 描述 | 说明 |
---|---|---|
APIC | Attached picture | 专辑图片,大多为 jpg 格式,少数为 png 格式 |
COMM | Comments | 注释,音乐文件的发行说明 |
GEOB | General encapsulated object | 通用封装对象 |
PRIV | Private frame | 私有帧,Windows Media 定义的一系列私有标签 |
TALB | Album/Movie/Show title | 专辑名称 |
TCOM | Composer | 作曲家 |
TCON | Content type | 音乐风格,不同的数字代表不同的风格,详情见这里 |
TIT2 | Title/songname/content description | 歌曲名称 |
TPE1 | Lead performer(s)/Soloist(s) | 专辑艺术家(演唱者) |
TPUB | Publisher | 发布者 |
TRCK | Track number/Position in set | 音轨数 |
TYER | Year | 年份 |
想了解更多标签信息,请看这里。
使用了
TextDecoder
、new Blob
、FileReader
等较新的 API,故只支持新版本的 Chrome 与 Firefox 浏览器。
MIT