2011-04-25 91 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(); 
} 

真的不是一個很好的和精確的解決方案,但這可能在實踐中起作用。