从 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.
您可能想要找到一个可以在加载项端运行的库。
我正在使用 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.
您可能想要找到一个可以在加载项端运行的库。