AS3如何从音频轨道的中间开始或停止音频播放

3
我有一个音频文件,我想避免将它切割。我知道可以使用声音类mySound.play(150)从150毫秒开始播放,但我还没有找到一种方法来停止音频,比如在500毫秒或650毫秒时。谢谢任何帮助。
2个回答

2
您可以使用enter frame事件来检查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(); } }

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();
}

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接