如何通过fileReference从本地上传的mp3中提取id3标签? (AS3)

时间:2014-07-23 05:33:58

标签: actionscript-3 flash id3

在AS3(对于flash)中,我们可以使用FileReference类浏览本地mp3文件并将数据传递给ByteArray。 但是,我们如何以这种方式提取id3标签呢?

(有一个外部库http://www.emanuelz.com.mx/blog/parsing-local-mp3-with-filereference-and-audiofx-library-106将bytearray解析为声音对象,但是,缺少id3标签。当你调用sound.id3.songName时,它返回NULL。)

1 个答案:

答案 0 :(得分:1)

你应该加载ByteArray,然后创建一个新的Sound对象,在其上创建一个ID3事件监听器,并调用loadCompressedDataFromByteArray(),这将使Flash解析加载文件为MP3,如果它有ID3标签,将调度该事件,允许您读取id3数据。

var themp3:Sound=new Sound();
themp3.addEventListener(Event.ID3,getid3);
themp3.loadCompressedDataFromByteArray(thefile,thefile.length);
// thefile is the ByteArray in question
function getid3(e:Event):void {
    if (e.target is Sound) {
        var s:Sound=e.target as Sound;
        trace(s.id3.songName);
    }
}