·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3.0的sound类常用技巧整理(7)

时间:2013-05-08 17:11CuPlayer.com
问题七 我们现在想获取正在播放的MP3文件的一些相关信息,比如:艺术家、音乐集、风格, 等。 解决方案 读取sound对象的id3属性 MP3文件中可以包含很多关于声音文件的一些数据,这些数据通常包含艺术家、音乐集、发行

问题七
我们现在想获取正在播放的MP3文件的一些相关信息,比如:艺术家、音乐集、风格, 等。
解决方案
读取sound对象的id3属性
MP3文件中可以包含很多关于声音文件的一些数据,这些数据通常包含艺术家、音乐集、发行时间、作曲家、等。包含信息的多少取决于制作或为这个音乐添加标签的人。在绝大多数情况下,我们至少可以从中获取歌曲名和艺术家的标签。
这些数据是我们用ActionScript通过访问sound对象的id3属性来得到的。
这些属性是flash.media.ID3Info 类的实例,它包含下面的一些具体属性:
album
artist
comment
genre
songName
TRack
year
所以要想知道音乐的名字,你可以这样做:
_sound.id3.songName
上面只是一个例子,注意:我们不能在音乐还没有真正下载到swf文件中就去获取这些信息。如果想在声音文件刚刚创建完毕或者刚刚开始播放就获取这些信息,将是不成功的。因为那时声音文件的具体信息还没下载到swf文件中,所以此时没有相关数据可用。

我们如何知道知道声音文件的id3相关数据已经到达swf文件中了呢?幸运的是,sound对象有个ID3事件可供我 们侦听,这个事件发生了,就表明可以安全地读取id3数据了。Sound对象继承了EventDispatcher类,因此我们可以用事件侦听函数来侦听 这个事件(这个事件被定义为 flash.events.Event.ID3),然后添加一个事件处理函数,来读取id3的信息。

下面的例子创建了一个文本框,并在其中列出了id3的所有信息

  1. package { 
  2. import flash.display.Sprite; 
  3. import flash.media.Sound; 
  4. import flash.net.URLRequest; 
  5. import flash.events.Event; 
  6. import flash.text.TextField; 
  7.  
  8. public class ID3Reader extends Sprite { 
  9. private var _sound:Sound; 
  10.  
  11. public function ID3Reader ( ) { 
  12. _sound = new Sound(new URLRequest(“song.mp3″)); 
  13. _sound.addEventListener(Event.ID3, onID3); 
  14. _sound.play( ); 
  15.  
  16. public function onID3(event:Event):void { 
  17. // Create a text field and display it 
  18. var id3Display:TextField = new TextField( ); 
  19. addChild(id3Display); 
  20. id3Display.x = 10
  21. id3Display.y = 20
  22. id3Display.width = 200
  23. id3Display.height = 200
  24. id3Display.background = true
  25. id3Display.multiline = true
  26. id3Display.wordWrap = true
  27.  
  28. // Add some info about the song to the text field 
  29. id3Display.text += _sound.id3.songName + ” “; 
  30. id3Display.text += _sound.id3.artist + ” “; 
  31. id3Display.text += _sound.id3.album + ” “; 
  32. id3Display.text += _sound.id3.year + ” “; 
  33. }  

 

译者注:上面的这个例子的使用方法:
1, 新建立一个fla文件,命名,保存;
2, 找一首歌曲(mp3格式)复制到fla的那个目录里面,命名为song.mp3(mp3是后缀名);
3, 新建一个.as文件,把上述代码复制到其中,保存为ID3Reader.as保存在fla同一个目录;
4, 把fla文件的document属性(选中舞台,打开属性面板就能看到)设置为ID3Reader;
5, 按ctrl+enter测试。

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器