as 3加载mp3

package {
	import flash.display.*;
	import flash.events.*;
	import flash.media.Sound;
	import flash.media.SoundChannel;
	import flash.media.SoundLoaderContext;
	import flash.media.ID3Info;
	import flash.net.URLRequest;
	import flash.external.ExternalInterface;
	import flash.utils.*;
	
	public class alarmSound extends Sprite{
		private var alarm:Sound;
		private var mp3URL:String = "http://img.3bu.cn/ring/ring/201003041507952.mp3"; //"alarm_2.mp3";
		private var song:SoundChannel;
		
		function alarmSound() {
			inited();
		}
		
		private function inited():void {
			alarm = new Sound();
			
			var req:URLRequest = new URLRequest(mp3URL);
			var buffer:SoundLoaderContext = new SoundLoaderContext(5*1000);
			
			alarm.addEventListener(Event.COMPLETE, completeHandler);
			alarm.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
			alarm.addEventListener(ProgressEvent.PROGRESS, processHandler);
			alarm.addEventListener(Event.ID3, id3Handler);
			
			alarm.load(req, buffer);
			
			song = alarm.play(0, 0);//从0开始,循环1次
			
			song.addEventListener(Event.SOUND_COMPLETE, playCompleteHandler);			
			
		}
		
		private function processHandler(pro:ProgressEvent):void {
			var percent:Number = Math.floor(pro.bytesLoaded/pro.bytesTotal*100*100)/100;
			trace(pro.bytesLoaded + "---" + pro.bytesTotal + "已加载..." + percent + "%");
		}
		
		private function playCompleteHandler(...args):void {
			//trace(alarm.length/1000 + "---" + song.position/1000);
			
			var estimatedTotal:Number = Math.ceil(alarm.length / (alarm.bytesLoaded / alarm.bytesTotal));
			var position:Number = Math.round(100 * (song.position / estimatedTotal));
			
			trace(estimatedTotal/1000/60 + "----" + position);
		}
		
		private function completeHandler(evt:Event):void {
			alarm.removeEventListener(Event.COMPLETE, completeHandler);
			
			//trace(alarm.length + "---" + song.position);
		}
		
		private function ioErrorHandler(evt:Event):void {
			
		}
		
		private function id3Handler(evt:Event):void {
			var id3:ID3Info = alarm.id3;
			
			trace('音乐名称:' + id3.songName);
			trace('专辑: ' + id3.album);
			trace('艺术家:' + id3.artist);
		}
		
	}	
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Modeng的专栏

思考:如何高效的说服别人

国庆期间去一个同学那里去玩耍,因为他是做服务行业的所以国庆没有放假,所以我就只能一边看他做生意,一边等他清闲了聊上两句。

9710
来自专栏轮子工厂

简历修改了100遍,却仍然没有找到满意的工作,你可能需要看一下这篇文章

最近恰逢秋招,身边很多朋友都跟我抱怨说,简历投出去了不少,可是很多都是石沉大海,没有了回音。于是就急的不行,纷纷跑过来请教简历制作大法。

12820
来自专栏一直在跳坑然后爬坑

行观点与列观点

8410
来自专栏黑泽君的专栏

程序员眼中的英语单词

10710
来自专栏黑泽君的专栏

写给新入职的毕业生们

5710
来自专栏凌帅的阅读思考与实践

加密货币必将成为世界货币称霸全球(二)

[第一篇文章](https://mp.weixin.qq.com/s/8-FskjZJFRJPd4oFl4BAww)中,凌帅分析了加密货币本身的先进性及作为全球...

17120
来自专栏黑泽君的专栏

输入输出流体系图

8210
来自专栏web前端

Button按钮--inject与provide

inject 和 provider 是vue中的组合选项,需要一起使用。目的是允许一个祖先组件向其所有子孙后代注入依赖(简单地说就是祖先组件向子孙后代传值的一种...

28610
来自专栏本立2道生

电脑护眼设置:蓝色光波过滤

本人高度近视,因此平时使用电脑时总会关注如何护眼,安卓手机上使用了app “蓝色光波过滤”,感觉不错,就想看看PC上有没有相应的软件,找倒是找到了,不过需要先安...

13010
来自专栏日知录

跃迁:成为高手的技术

14420

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励