在AS3中,我创建了一个加载声音并在流媒体中执行的代码。
var mySound:Sound = new Sound();
var myChannel:SoundChannel = new SoundChannel();
mySound.load(new URLRequest("surrender.mp3"));
myChannel = mySound.play();
考虑到mp3文件放在服务器上,我需要跟踪它是否已经开始或仍然从服务器接收初始数据。一旦它有效地开始,我就要调用一个初始化一些东西的函数。
问题是,如果声音或通道对象“正在播放”,我如何追踪?
答案 0 :(得分:0)
您可以通过侦听Sound对象调度的不同事件以及Sound.isBuffering等属性来检查这一点
答案 1 :(得分:0)
你可以等待mp3完全加载
var myChannel:SoundChannel;
var soundFactory:Sound = new Sound();
soundFactory.addEventListener(Event.COMPLETE, completeHandler);
soundFactory.load(request);
// ...
private function completeHandler(event:Event):void {
trace("completeHandler: " + event);
myChannel = soundFactory.play();
}
或者您可以使用Timer
并定期检查myChannel.position
- 如果它没有改变停止播放的声音......