·您当前的位置:首页 > 技术教程 > 播放器教程 >

[AS3]AS3写的mp3播放器源代码示例参考

时间:2013-02-17 22:22CuPlayer.com
[AS3]AS3写的mp3播放器源代码示例参考

[AS3]AS3写的mp3播放器源代码示例参考

  1. package  { 
  2.         import flash.media.Sound; 
  3.         import flash.media.SoundChannel; 
  4.         import flash.media.SoundLoaderContext; 
  5.         import flash.media.SoundMixer; 
  6.  
  7.         public class MediaPlayerCore { 
  8.                 private var sound:Sound; 
  9.                 private var soundCh:SoundChannel; 
  10.                 private var soundCon:SoundLoaderContext; 
  11.                 private var position:Number; 
  12.                 private var isPlaying:Boolean; 
  13.                 private var isPause:Boolean; 
  14.                 private static var BUFFERTIME:Number = 10000
  15.                          
  16.                 public function MediaPlayerCore() 
  17.                 { 
  18.                         isPause = false
  19.                         isPlaying = false
  20.                         SoundMixer.bufferTime = BUFFERTIME;  
  21.                 } 
  22.                //cuplayer.com提示:创建一个声音对象 
  23.                  //@param url 媒体地址 
  24.                  // @param playNow 是否马上播放,默认为真       
  25.                 public function createSound(url:String,playNow:Boolean = true):void 
  26.                 {                         
  27.                         dispose(); 
  28.                         sound = new Sound(); 
  29.                         sound.load(new URLRequest(url)); 
  30.                         sound.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);              
  31.                         if(playNow) 
  32.                                 play();                             
  33.                 } 
  34.                 //cuplayer.com提示:播放 
  35.                   //@param offset 声音从哪开始       
  36.                 public function play(offset:Number = 0):void 
  37.                 { 
  38.                         if(isPause) 
  39.                                 soundsoundCh = sound.play(position); 
  40.                         else 
  41.                                 soundsoundCh = sound.play(offset); 
  42.                         isPlaying = true
  43.                         isPause = false
  44.                 } 
  45.                //cuplayer.com提示:暂停         
  46.                 public function pause():void 
  47.                 { 
  48.                         if(isPlaying) 
  49.                         {                         
  50.                                 position = soundCh.position; 
  51.                                 stop();         
  52.                                 isPause = true
  53.                         } 
  54.                 } 
  55.                 //cuplayer.com提示:停止         
  56.                 public function stop():void 
  57.                 { 
  58.                         if(isPlaying) 
  59.                         { 
  60.                                 soundCh.stop(); 
  61.                                 isPlaying = false;                                 
  62.                         } 
  63.                 } 
  64.                 //cuplayer.com提示:播放位置         
  65.                 public function get Position():Number 
  66.                 { 
  67.                         if(soundCh == null) 
  68.                                 return 0;                     
  69.                         return Math.round(soundCh.position); 
  70.                 } 
  71.                 //cuplayer.com提示:声音对象长度         
  72.                 public function get Length():Number 
  73.                 { 
  74.                         if(sound == null) 
  75.                                 return 0; 
  76.                         return Math.round(sound.length*sound.bytesTotal/sound.bytesLoaded); 
  77.                 } 
  78.                 //cuplayer.com提示:声音对象总共字节         
  79.                 public function get BytesTotal():Number 
  80.                 { 
  81.                         if(sound == null) 
  82.                                 return 0; 
  83.                         return sound.bytesTotal; 
  84.                 } 
  85.                 //cuplayer.com提示:声音对象加载字节         
  86.                 public function get BytesLoaded():Number 
  87.                 { 
  88.                         if(sound == null) 
  89.                                 return 0; 
  90.                         return sound.bytesLoaded; 
  91.                 } 
  92.                 //cuplayer.com提示:设置缓冲时间         
  93.                 public function set BufferTime(time:Number):void 
  94.                 { 
  95.                         SoundMixer.bufferTime=time
  96.                 } 
  97.                //中途换歌的时候用的 
  98.                 private function dispose():void 
  99.                 { 
  100.                         if(sound == null) 
  101.                                 return ; 
  102.                         if(sound.isBuffering) 
  103.                                 sound.close(); 
  104.                         stop();                  
  105.                         sound = null
  106.                 } 
  107.                // cuplayer.com提示:处理错误用 
  108.                 private function errorHandler(e:IOErrorEvent):void 
  109.                 { 
  110.                         sound.removeEventListener(IOErrorEvent.IO_ERROR,errorHandler); 
  111.                         sound = null
  112.                 }                 
  113.         } 

 

热门文章推荐

请稍候...

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

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