从 firefox 插件中的本地音频文件解析 id3 数据

Parsing id3 data from a local audio file within firefox addon

我正在使用 SDK 开发 Firefox addon,它使用 require("sdk/io/file").list().
列出您计算机上的音频文件 我使用上述方法构建了一个文件路径数组,并将该数组传递给附加到 Panel.
contentScript Panel 然后遍历数组并显示找到的所有文件。

现在我正在尝试使用 JavaScript-ID3-Reader,这样我就可以从每个文件中读取 ID3 数据并将这些数据显示在每个文件旁边。
我一直在尝试 this(读取本地文件),从 contentScript 内部,例如 ..

var f = new File([""], "file:///home/user/audio.mp3");
ID3.loadTags("audio.mp3", function () {
        var tags = ID3.getAllTags("audio.mp3");
        console.log(tags.comment + " - " + tags.track + ", " + tags.lyrics);
}, {
        dataReader: FileAPIReader(f)
}); 

但我得到的输出是..

undefined - undefined, undefined

/home/user/audio.mp3 包含以下 ID3 数据,通过 http://web.ist.utl.pt/antonio.afonso/www.aadsm.net/libraries/id3/ ..

找到
Artist
    A Perfect Circle
Title
    Annihilation
Album
    eMOTIVe
Year
    2004
Comment
Genre
    Pop/Rock
Track
    1/12
Lyrics

这是我正在尝试的另一个测试..

function getID3 (file) {
        var url = file.name;
        console.log(url); // console.log: addon: /home/user/audio.mp3
        ID3.loadTags(url, function () {
                var tags = ID3.getAllTags(url);
                console.log(tags); // console.log: addon: {}
                console.log(tags.artist); // console.log: addon: null
        }, {
                dataReader: new FileAPIReader(file)
        });
}

var f = new File([""], "file:///home/rob/audio.mp3", {type : "audio/mpeg"});
getID3(f);

有人知道这可能有什么问题吗? /home/user/audio.mp3 确实存在于文件系统上。

您确定您的 audio.mp3 文件定义了这些 ID3 标签吗?尝试使用 console.log(tags) 列出您的 ID3 标签以查看所有标签,并尝试使用桌面媒体播放器打开它以查看信息是否显示。请注意,ID3 有多个不同的版本,因此您也可能使用了错误的版本。

此 JavaScript-ID3-Reader 库旨在 运行 在网站上下文中,仅适用于通过 http 和 [=11= 提供的文件] afaict.

您可能想要找到一个可以在加载项端运行的库。