I Love China

技术·人生

技术服务生活
繁體
6月 10th, 2007

[as3]使用流声音

当一个声音文件或者视频文件在它的数据正在加载中就播放的时候,称它为. 从远程服务器加载的声音文件经常是流的形式,这样用户就用等到所有数据加载完才能听声音.

The SoundMixer.bufferTime属性指定Flash Player在开始播放前应该聚集多少毫秒的声音数据.换句话说,假如bufferTime的值设成5000,Flash Player在开始播放声音前应该至少加载了5000毫秒的声音数据(注意:是加载了5000毫秒的数据,不是指加载数据花了5000毫秒).

SoundMixer.bufferTime的默认值是1000.

你的程序可以通过指定一个精确的bufferTime值为一个单独的声音改写SoundMixer.bufferTime的值.要改变默认缓冲时间值,首先创建SoundLoaderContext类的一个实例,设置它的bufferTime属性,然后把它作为一个参数传给Sound.load()方法,就像下面这样:

ActionScript Code:
  1. import flash.media.Sound;
  2. import flash.media.SoundLoaderContext;
  3. import flash.net.URLRequest;
  4.  
  5. var s:Sound = new Sound();
  6. var req:URLRequest = new URLRequest("bigSound.mp3");
  7. var context:SoundLoaderContext = new SoundLoaderContext(8000, true);
  8. s.load(req, context);
  9. s.play();

当播放继续的时候,Flash Player会尽量保持相同或更大的缓冲区.如果声音加载速度比播放速度快,播放不会没有中断的持续下去.但是,如果数据加载速度由于网络限制而变慢,播放头可能到达缓冲区的结尾.如果这种情况发生,播放被挂起,直到声音被加载了之后会自动重新开始.

要查看是否因为Flash Player在等待加载数据而挂起了播放,使用Sound.isBuffering属性.

随机文章:

Leave a Reply