让musicmetadata在浏览器中工作

时间:2015-04-26 00:45:40

标签: javascript filereader

这是我正在尝试使用的库:

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

0 个答案:

没有答案