loadin Do…

一条只能往前走的路,叫时光.

首页 联系 订阅 管理

在加载的mp3文件输出id3信息的时候,总是出现乱码.不论采用什么编码方式,很是烦人.
找了个解决的方法,比较实用,感谢作者.
代码如下:
package {
 import flash.display.Sprite;
 import flash.events.*;
 import flash.media.Sound;
 import flash.net.URLRequest;
 import flash.utils.ByteArray;

 public class ID3Encoder extends Sprite {
  private var url:String = "test1.mp3";
  private var iSound:Sound = new Sound();
  public function ID3Encoder() {
   var request:URLRequest = new URLRequest(url);
   iSound.addEventListener(Event.ID3, Id3Handler);
   iSound.load(request);
   iSound.play();
  }
  private function Id3Handler(event:Event):void {
   trace(String("歌曲ID3信息:"+EncodeUtf8(iSound.id3.songName)));
  }
  /*
  *id3文件转义
  */
  private function EncodeUtf8(str : String):String {
   var oriByteArr : ByteArray = new ByteArray();
   oriByteArr.writeUTFBytes(str);
   var tempByteArr : ByteArray = new ByteArray();
   trace(str);
   for (var i = 0; i<oriByteArr.length; i++) {
    if (oriByteArr[i] == 194) {
     tempByteArr.writeByte(oriByteArr[i+1]);
     i++;
    } else if (oriByteArr[i] == 195) {
     tempByteArr.writeByte(oriByteArr[i+1] + 64);
     i++;
    } else {
     tempByteArr.writeByte(oriByteArr[i]);
    }
   }
   tempByteArr.position = 0;
   return tempByteArr.readMultiByte(tempByteArr.bytesAvailable,"chinese");
  }
 }
}
参考资料:
http://www.5uflash.com/Html/as3/223611653.html

posted on 2008-03-24 14:05  i'am sl  阅读(474)  评论(0)    收藏  举报