我只知道Sound类和SoundChannel类。请各位给小弟简单的例子吧,我如何获得当前音频下载了多少?如何知道当前音乐播放到什么位置?谢谢各位了!
8 个解决方案
#1
如果单纯播放MP3等音频文件很简单。如果想做直播或聊天室就麻烦了。
给你写了一个,没加注解,很晚了,呵呵。
需要注意的是本地是无法测试的,你需要上传到网站上测试。安全沙箱也需要注意。既然搞网络程序,这个我不多说了。
打完收工,睡觉去了。
给你写了一个,没加注解,很晚了,呵呵。
需要注意的是本地是无法测试的,你需要上传到网站上测试。安全沙箱也需要注意。既然搞网络程序,这个我不多说了。
打完收工,睡觉去了。
import flash.net.URLRequest;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
import flash.media.SoundLoaderContext;
import flash.display.Sprite;
import flash.text.TextField;
var btn:Sprite = new Sprite();
btn.graphics.beginFill(0xff0000);
btn.graphics.drawRect(10,10,50,50);
btn.buttonMode = true;
addChild(btn);
var txt:TextField = new TextField();
addChild(txt);
txt.border = true;
txt.height = 20;
txt.x = 10;
txt.y = 100;
var mylo:URLRequest = new URLRequest("and.mp3");
var my:Sound = new Sound();
var myc:SoundChannel = new SoundChannel();
var ss:SoundLoaderContext = new SoundLoaderContext(5000);
my.load(mylo,ss);
my.addEventListener(ProgressEvent.PROGRESS,mymy);
function mymy(evt:ProgressEvent)
{
var loadNum:Number = evt.bytesTotal;
txt.text = String(Math.round(evt.bytesLoaded / loadNum * 100))+"%";
}
btn.addEventListener(MouseEvent.CLICK,myevt);
function myevt(evt:MouseEvent)
{
myc = my.play();
}
#2
sound.load()之后
sound.bytesLoaded取得当前加载的长度(字节)
sound.bytesTotal取得是歌曲的总长度(字节)
soundChannel=sound.play()之后
soundChannel.posotion取得当前的播放位置
sound.bytesLoaded取得当前加载的长度(字节)
sound.bytesTotal取得是歌曲的总长度(字节)
soundChannel=sound.play()之后
soundChannel.posotion取得当前的播放位置
#3
谢谢这位朋友,我想问一下在my.addEventListener中的那个ProgressEvent.PROGRESS是什么事件?谢谢
#4
这个是用来显示载入进度的。
在过程中触发
在过程中触发
#5
哦,原来是这样啊,明白了。谢谢你,分给你。对了,顺便问一下,如果歌曲只下载了20%,播放时会在20%处停下,这时,网络好了之后,歌曲要想继续播放应该怎么做?我刚刚接触AS3,还不太了解Sound类和SoundChannel类。变量myc在音频数据断了以后停止是进行了stop()方法,还是像挂起之类的状态呢?如果是挂起,怎么继续?谢谢你了!
#6
首先可以控制缓存的大小
var ss:SoundLoaderContext = new SoundLoaderContext(5000);
这样是保证流畅不放的关键。
暂时没考虑过你所说的情况。我认为下载后会自动继续的。
还有一点,可以通过 myc = my.play(要播放位置的毫秒数)来指定播放位置。
位置是通过SoundChannel类的position属性获得,注意是只读的。
建议多参考HELP文件。
http://help.adobe.com/zh_CN/Flash/CS5/AS3LR/flash/media/SoundChannel.html
#7
恩,好的!你真是帮我一个大忙!I own you a big one!非常感谢!你让我学到很多!
#8
回复:xinje
不好意思,我就这么多分数!
感谢大家对小弟的帮助,谢谢你们
不好意思,我就这么多分数!
感谢大家对小弟的帮助,谢谢你们
#1
如果单纯播放MP3等音频文件很简单。如果想做直播或聊天室就麻烦了。
给你写了一个,没加注解,很晚了,呵呵。
需要注意的是本地是无法测试的,你需要上传到网站上测试。安全沙箱也需要注意。既然搞网络程序,这个我不多说了。
打完收工,睡觉去了。
给你写了一个,没加注解,很晚了,呵呵。
需要注意的是本地是无法测试的,你需要上传到网站上测试。安全沙箱也需要注意。既然搞网络程序,这个我不多说了。
打完收工,睡觉去了。
import flash.net.URLRequest;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
import flash.media.SoundLoaderContext;
import flash.display.Sprite;
import flash.text.TextField;
var btn:Sprite = new Sprite();
btn.graphics.beginFill(0xff0000);
btn.graphics.drawRect(10,10,50,50);
btn.buttonMode = true;
addChild(btn);
var txt:TextField = new TextField();
addChild(txt);
txt.border = true;
txt.height = 20;
txt.x = 10;
txt.y = 100;
var mylo:URLRequest = new URLRequest("and.mp3");
var my:Sound = new Sound();
var myc:SoundChannel = new SoundChannel();
var ss:SoundLoaderContext = new SoundLoaderContext(5000);
my.load(mylo,ss);
my.addEventListener(ProgressEvent.PROGRESS,mymy);
function mymy(evt:ProgressEvent)
{
var loadNum:Number = evt.bytesTotal;
txt.text = String(Math.round(evt.bytesLoaded / loadNum * 100))+"%";
}
btn.addEventListener(MouseEvent.CLICK,myevt);
function myevt(evt:MouseEvent)
{
myc = my.play();
}
#2
sound.load()之后
sound.bytesLoaded取得当前加载的长度(字节)
sound.bytesTotal取得是歌曲的总长度(字节)
soundChannel=sound.play()之后
soundChannel.posotion取得当前的播放位置
sound.bytesLoaded取得当前加载的长度(字节)
sound.bytesTotal取得是歌曲的总长度(字节)
soundChannel=sound.play()之后
soundChannel.posotion取得当前的播放位置
#3
谢谢这位朋友,我想问一下在my.addEventListener中的那个ProgressEvent.PROGRESS是什么事件?谢谢
#4
这个是用来显示载入进度的。
在过程中触发
在过程中触发
#5
哦,原来是这样啊,明白了。谢谢你,分给你。对了,顺便问一下,如果歌曲只下载了20%,播放时会在20%处停下,这时,网络好了之后,歌曲要想继续播放应该怎么做?我刚刚接触AS3,还不太了解Sound类和SoundChannel类。变量myc在音频数据断了以后停止是进行了stop()方法,还是像挂起之类的状态呢?如果是挂起,怎么继续?谢谢你了!
#6
首先可以控制缓存的大小
var ss:SoundLoaderContext = new SoundLoaderContext(5000);
这样是保证流畅不放的关键。
暂时没考虑过你所说的情况。我认为下载后会自动继续的。
还有一点,可以通过 myc = my.play(要播放位置的毫秒数)来指定播放位置。
位置是通过SoundChannel类的position属性获得,注意是只读的。
建议多参考HELP文件。
http://help.adobe.com/zh_CN/Flash/CS5/AS3LR/flash/media/SoundChannel.html
#7
恩,好的!你真是帮我一个大忙!I own you a big one!非常感谢!你让我学到很多!
#8
回复:xinje
不好意思,我就这么多分数!
感谢大家对小弟的帮助,谢谢你们
不好意思,我就这么多分数!
感谢大家对小弟的帮助,谢谢你们