2011-04-25 92 views
3

我有一个音频文件,我想避免将其切断。AS3从音轨中间开始和停止音频

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

感谢您的任何意见。

回答

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

这样做,谢谢。 – Chuck 2011-04-25 18:32:35

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

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