2012-07-30 60 views
0

是否有任何方式可以让我们拥有任何音乐文件的专辑封面,我可以提取文件的详细信息,如专辑名称,长度,作者,流派,曲目信息。 但我喜欢展示专辑的艺术形象。 请帮忙音乐文件的专辑艺术

回答

2

很明显,this page上的某个人设法编写一些代码将图像的数据提取为ByteArray,然后通过Loader对象加载。这里是他们提出的代码:

var binaryData:ByteArray; 
var file:URLLoader = new URLLoader(new URLRequest("test.mp3")); 
var finalData:ByteArray = new ByteArray; 
var byteCon:Loader = new Loader; 
var offset:int; var rLength:int; 
var found:Boolean = false; 
var end:Boolean = false; 
file.dataFormat = URLLoaderDataFormat.BINARY; 
file.addEventListener(Event.COMPLETE, handleComplete); 
function handleComplete(e:Event):void{ 
    binaryData = file.data as ByteArray; 
    binaryData.position = 0; 
    //get offset and length 
    while(!found){ 
     var pos:int = binaryData.readUnsignedInt(); 
     if(pos == 0x41504943){ 
      offset = binaryData.position + 20; 
     } 
     if(pos == 0){ 
      if (!found){ 
       rLength = binaryData.position - 1 - offset; 
       if(rLength > 5000){ 
        found = true; 
       } 
      }  
     } 
     binaryData.position = binaryData.position - 3; 
    } 
    finalData.writeBytes(binaryData, offset, rLength); 
    finalData.position = 0; 
    byteCon.loadBytes(finalData); 
    addChild(byteCon); 
} 

当然这是专门讨论MP3,虽然你可能可以适应其他格式。

+0

请你解释一下这段代码中发生了什么,我无法得到它吗? – 2012-07-30 12:31:39

+0

@ShashankAgarwal基本上,它正在读取寻找指示附加图片的特定字节块的MP3的实际二进制数据,然后将其提取并添加到显示器中。 – 2012-07-30 13:29:43

+0

是的,像素大象是对的。您可以通过传递byteCon将图像存储在DisplayObject(如Sprite)中。 – puggsoy 2012-07-30 13:57:11

相关问题