如果在声音文件或视频文件的数据加载过程中播放该文件,则称为“流式传输”。通常,将对从远程服务器加载的声音文件进行流式传输,以使用户不必等待加载完所有声音数据再收听声音。
SoundMixer.bufferTime
属性表示应用程序在允许播放声音之前收集多长时间的声音数据(以毫秒为单位)。也就是说,如果将
bufferTime
属性设置为 5000,在开始播放声音之前,该应用程序将从声音文件中加载至少相当于 5000 毫秒的数据。
SoundMixer.bufferTime
默认值为 1000。
通过在加载声音时显式地指定新的
bufferTime
值,应用程序可以覆盖单个声音的全局
SoundMixer.bufferTime
值。若要覆盖默认缓冲时间,请先创建一个 SoundLoaderContext 类实例,设置其
bufferTime
属性,然后将其作为参数传递给
Sound.load()
方法。以下示例说明了这一过程:
var s = new air.Sound();
var url = "http://www.example.com/sounds/bigSound.mp3";
var req = new air.URLRequest(url);
var context = new air.SoundLoaderContext(8000, true);
s.load(req, context);
s.play();
在播放继续进行时,AIR 尝试将声音缓冲区保持在相同大小或更大。如果声音数据的加载速度比播放速度快,播放将连续进行而不会中断。但是,如果数据加载速率由于网络限制而减慢,播放头可能会到达声音缓冲区的结尾。如果发生这种情况,播放会暂停,但播放会在已加载更多声音数据后自动恢复。
若要查明播放暂停是否是由于 AIR 正在等待加载数据,请使用
Sound.isBuffering
属性。
|
|
|