2011-04-25 3 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

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

실제로 매우 훌륭하고 정확한 해결책은 아니지만 실제로는 제대로 작동 할 수 있습니다.