在as3中播放连续的wav声音

时间:2012-09-21 20:58:13

标签: actionscript-3 external wav

我试图以连续的方式播放AS3外部wav声音。显而易见的方法是使用此算法: 1.播放声音1 2.当声音1完成时,播放声音2 等

问题是我失败了第2步(“声音1完成时”部分)。

请仅回答wav声音,而不是mp3。

这是我的代码:

package 
{
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.events.Event;
    import flash.utils.ByteArray;
    import flash.media.Sound;
    import org.as3wavsound.WavSound;
    import org.as3wavsound.WavSoundChannel;

    public final class Main extends Sprite
    {
        public final function Main():void
        {
            playB.addEventListener(MouseEvent.MOUSE_UP, loadWav);
        }

        private final function loadWav(e:MouseEvent):void
        {
            var urlRequest:URLRequest = new URLRequest('Phone.wav');
            var wav:URLLoader = new URLLoader();
            wav.dataFormat = 'binary';
            wav.load(urlRequest);
            wav.addEventListener(Event.COMPLETE, playWav);
        }

        private final function playWav(e:Event):void
        {
            var tts:WavSound = new WavSound(e.target.data as ByteArray);
            tts.play();
        }
    }
}

(当然这是第1步)

感谢名单

1 个答案:

答案 0 :(得分:1)

尝试将声音放入SoundChannel(从播放命令返回),然后听取完整的事件:

private final function playWav(e:Event):void
{
    var tts:WavSound = new WavSound(e.target.data as ByteArray);
    var channel:WavSoundChannel = tts.play();
    channel.addEventListener(Event.SOUND_COMPLETE, completeHandler)
}

private function completeHandler(e:Event):void {
    //play next sound
}