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

搜索
查看: 1529|回复: 1
上一主题 下一主题

[音频 & 声道 & 录音] AS3中实现显示音频播放进度百分比的实例

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

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

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

x
  • package com.lzxt{
  •     //导入包
  •     import flash.display.Sprite;
  •     import flash.events.*;
  •     import flash.media.Sound;
  •     import flash.media.SoundChannel;
  •     import flash.net.URLRequest;
  •     import flash.text.TextField
  •     //创建文档类
  •     public class SoundPro extends Sprite {
  •         //定义属性
  •         private var len:Number;
  •         private var po:Number;
  •         private var song:SoundChannel;
  •         private var sp1:Sprite
  •         private var sp2:Sprite
  •         private var txt:TextField
  •         //定义要加载的文件路径,注意,此路径要相对于SWF文件的目录
  •         private var url:String="献给爱丽丝.mp3";
  •         //创建Sound类实例
  •         private var mysound:Sound=new Sound();
  •         //构造函数
  •         public function SoundPro() {
  •             //创建URL连接
  •             var request:URLRequest=new URLRequest(url);
  •             //注册加载完成事件
  •             mysound.addEventListener(Event.COMPLETE,completeHandler);
  •             //加载文件
  •             mysound.load(request);
  •             //创建一个背景显示对象
  •             sp1=new Sprite();
  •             sp1.graphics.beginFill(0xff0000);
  •             sp1.graphics.drawRect(0,0,300,20);
  •             sp1.graphics.endFill();
  •             addChild(sp1);
  •             sp1.x=50;
  •             sp1.y=100;
  •             //创建一个用于缩放的显示对象,通过缩放表示进度值
  •             sp2=new Sprite();
  •             sp2.graphics.beginFill(0xffff00);
  •             sp2.graphics.drawRect(0,0,298,18);
  •             sp2.graphics.endFill();
  •             addChild(sp2);
  •             sp2.x=51;
  •             sp2.y=101;
  •             //创建一个动态文本,用于在其中不断显示当前的进度
  •             txt=new TextField()
  •             txt.text="当前播放进度为:"
  •             txt.x=50
  •             txt.y=120
  •             txt.width=300
  •             addChild(txt)
  •         }
  •         //创建加载完成事件侦听函数
  •         private function completeHandler(event:Event):void {
  •             //加载完成,开始播放
  •             song=mysound.play();
  •             //获取当前声音文件的长度
  •             len=mysound.length;
  •             //加入帧循环事件,逐帧计算播放进度
  •             addEventListener(Event.ENTER_FRAME,onenterframe);
  •         }
  •         //创建逐帧计算和显示进度事件处理函数
  •         private function onenterframe(evt:Event):void {
  •             //获取当前播放头所对应的音频文件长度
  •             po=song.position;
  •             //计算进度比值
  •             var per=po/len;
  •             //缩放显示对象sp2,实现进度显示
  •             sp2.scaleX=per
  •             //计算进度百分比
  •             var percent=Math.floor(per*10000)/100
  •             //文本显示进度
  •             txt.text="当前播放进度为:"+percent+"%"
  •         }
  •     }
  • }

评分

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

查看全部评分

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

好歹你把格式整理下啊。。
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐 上一条 /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)



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