AS3从音轨中间开始和停止音频

时间:2011-04-25 14:52:11

标签: flash actionscript-3 audio

我有一个音频文件,我想避免将其删除。

我知道我可以使用声音等级mySound.play(150),从150ms开始,但是在500ms或650ms之后没有遇到停止音频的方法。

感谢您的任何意见。

2 个答案:

答案 0 :(得分:2)

您可以使用输入框架事件来检查SoundChannel位置 - SoundChannel。一旦位置大于或等于您的时间码,请停止声音。这当然不会非常准确,并且取决于应用程序的帧速率。

var mySound:Sound = new Sound();
var channel:SoundChannel = new SoundChannel();

addEventListener(Event.ENTER_FRAME, loop);
channel = mySound.play(150);

function loop(e:Event):void {
   if (channel.position >= 500) {
      channel.stop();
   }
}

答案 1 :(得分:0)

不幸的是,可能没有任何好方法可以做到这一点。一个解决方法可能是创建一个计时器并在触发计时器处理程序时停止。像这样:

sndChannel = mySound.play(200);
var stopTimer:Timer = new Timer(500, 1);   // stop after 500ms
stopTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onStopTimer);
stopTimer.start();

private function onStopTimer(evt:TimerEvent):void {
    sndChannel.stop();
}

真的不是一个非常好的和精确的解决方案,但这可能在实践中有效。