这是我正在尝试使用的库:
https://github.com/leetreveil/musicmetadata
有些文档显示如何使用它,但是他们的文档使用这个名为fs.createReadStream
的函数来打开文件。此功能适用于Node的用户,我相信在浏览器环境中不可用(或不适用)。我想我需要使用FileReader
?在我的情况下,文件将来自<input>
字段。
以下是图书馆文档中的一个示例:
var parser = mm(fs.createReadStream('sample.mp3'), function (err, metadata) {
if (err) throw err;
console.log(metadata);
});
我尝试过使用它,但它不起作用:
$("input[type=file]").change(function(event) {
var reader = new FileReader();
reader.onload = function(e) {
var blob = reader.result;
var parser = new musicmetadata(blob);
parser.on('metadata', function (result) {
console.log("MP3 tags!!!", result);
});
}
reader.readAsBinaryString($(this)[0].files[0]);
});
编辑:我刚刚发现了浏览器示例:https://github.com/leetreveil/musicmetadata/blob/master/example/index.html
我的代码现在是这样的:
$("input[type=file]").change(function(event) {
var parser = musicmetadata($(this)[0].files[0]);
parser.on('metadata', function(result) {
console.log("MP3 tags!!!");
});
});
当我运行它时,我收到此错误:
Uncaught TypeError: Cannot read property 'hasOwnProperty' of undefined