11RIA 闪客社区 - 最赞 Animate Flash 论坛

搜索
查看: 1559|回复: 2
上一主题 下一主题

[音频 & 声道 & 录音] AS3制作音乐MP3播放器源代码实例

[复制链接] TA的其它主题
发表于 2020-7-16 11:09:35 | 显示全部楼层 |阅读模式

【游客模式】——注册会员,加入11RIA 闪客社区吧!一起见证Flash的再次辉煌……

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
  • package  {
  •         import flash.media.Sound;
  •         import flash.media.SoundChannel;
  •         import flash.media.SoundLoaderContext;
  •         import flash.media.SoundMixer;
  •         public class MediaPlayerCore {
  •                 private var sound:Sound;
  •                 private var soundCh:SoundChannel;
  •                 private var soundCon:SoundLoaderContext;
  •                 private var position:Number;
  •                 private var isPlaying:Boolean;
  •                 private var isPause:Boolean;
  •                 private static var BUFFERTIME:Number = 10000;
  •                         
  •                 public function MediaPlayerCore()
  •                 {
  •                         isPause = false;
  •                         isPlaying = false;
  •                         SoundMixer.bufferTime = BUFFERTIME;  
  •                 }
  •                //创建一个声音对象
  •                  //@param url 媒体地址
  •                  // @param playNow 是否马上播放,默认为真      
  •                 public function createSound(url:String,playNow:Boolean = true):void
  •                 {                        
  •                         dispose();
  •                         sound = new Sound();
  •                         sound.load(new URLRequest(url));
  •                         sound.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);              
  •                         if(playNow)
  •                                 play();                             
  •                 }
  •                 //播放
  •                   //@param offset 声音从哪开始      
  •                 public function play(offset:Number = 0):void
  •                 {
  •                         if(isPause)
  •                                 soundsoundCh = sound.play(position);
  •                         else
  •                                 soundsoundCh = sound.play(offset);
  •                         isPlaying = true;
  •                         isPause = false;
  •                 }
  •                //暂停         
  •                 public function pause():void
  •                 {
  •                         if(isPlaying)
  •                         {                        
  •                                 position = soundCh.position;
  •                                 stop();         
  •                                 isPause = true;
  •                         }
  •                 }
  •                 //停止         
  •                 public function stop():void
  •                 {
  •                         if(isPlaying)
  •                         {
  •                                 soundCh.stop();
  •                                 isPlaying = false;                                 
  •                         }
  •                 }
  •                 //播放位置         
  •                 public function get Position():Number
  •                 {
  •                         if(soundCh == null)
  •                                 return 0;                     
  •                         return Math.round(soundCh.position);
  •                 }
  •                 //声音对象长度         
  •                 public function get Length():Number
  •                 {
  •                         if(sound == null)
  •                                 return 0;
  •                         return Math.round(sound.length*sound.bytesTotal/sound.bytesLoaded);
  •                 }
  •                 //声音对象总共字节         
  •                 public function get BytesTotal():Number
  •                 {
  •                         if(sound == null)
  •                                 return 0;
  •                         return sound.bytesTotal;
  •                 }
  •                 //声音对象加载字节         
  •                 public function get BytesLoaded():Number
  •                 {
  •                         if(sound == null)
  •                                 return 0;
  •                         return sound.bytesLoaded;
  •                 }
  •                 //设置缓冲时间         
  •                 public function set BufferTime(time:Number):void
  •                 {
  •                         SoundMixer.bufferTime=time;
  •                 }
  •                //中途换歌的时候用的
  •                 private function dispose():void
  •                 {
  •                         if(sound == null)
  •                                 return ;
  •                         if(sound.isBuffering)
  •                                 sound.close();
  •                         stop();                  
  •                         sound = null;
  •                 }
  •                // CuPlayer.com处理错误用
  •                 private function errorHandler(e:IOErrorEvent):void
  •                 {
  •                         sound.removeEventListener(IOErrorEvent.IO_ERROR,errorHandler);
  •                         sound = null;
  •                 }                 
  •         }
  • }

评分

参与人数 1银子 +5 贡献 +1 收起 理由
TKCB + 5 + 1 发帖分类错误,格式未整理

查看全部评分

发表于 2020-7-16 13:40:23 | 显示全部楼层
【11RIA 闪客社区,评分公示】:
是否有价值:一般(银子 +10  贡献 +1)
是否原创:否
是否翻译:否
如对自己的评分有疑问,则咨询版主、管理员等。

发帖分类错误,格式未整理
回复

使用道具 举报

发表于 2021-5-10 16:58:42 | 显示全部楼层
厉害厉害
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

感谢所有支持论坛的朋友:下面展示最新的5位赞助和充值的朋友……更多赞助和充值朋友的信息,请查看:永远的感谢名单

SGlW(66139)、 anghuo(841)、 whdsyes(255)、 longxia(60904)、 囫囵吞澡(58054)

下面展示总排行榜的前3名(T1-T3)和今年排行榜的前3名的朋友(C1-C3)……更多信息,请查看:总排行榜今年排行榜

T1. fhqu1462(969)、 T2. lwlpluto(14232)、 T3. 1367926921(962)  |  C1. anghuo(147)、 C2. fdisker(27945)、 C3. 囫囵吞澡(58054)



快速回复 返回顶部 返回列表