AS3中复杂的无间隙声音循环

时间:2014-05-31 21:51:23

标签: actionscript-3 flash loops audio wav

我有一个WAV音乐文件,我想在Flash Pro中循环播放。但是,我不确定如何使用此轨道,该轨道具有开放部分循环部分

音频文件将被划分为'分三点: A B C 循环部分将是 B C 之间的所有音频,而 A B 将是开场部分,只会播放一次。

我尝试将WAV分成两个文件:AB为intro文件,BC为looping文件,因此在intro声音完成后,{ {1}}声音开始了。 这两个文件都在库中(现在我只关注本地文件)。

总结一下,这是AS3代码:

looping

循环是完全无间隙的,但是前奏和循环部分之间的过渡会产生恼人的间隙声音。我怎么能让这种转变无间隙?

1 个答案:

答案 0 :(得分:0)

您可以通过在第一个声音播放完毕之前一秒钟左右在另一个SoundChannel中播放第二个声音来避免间隙声音。这不是一个优雅的解决方案,但它可能会奏效。也许是这样的:

import flash.media.Sound;
import flash.events.Event;
import flash.media.SoundChannel;

var introMusic:Sound = new heroIntro();
var loopingMusic:Sound = new heroLoop();
var introChannel:SoundChannel = new SoundChannel();
var loopingChannel:SoundChannel = new SoundChannel();
var hasBegunLooping:Boolean = false;
introChannel = introMusic.play();

function update():void{ //called every tick
    if(!hasBegunLooping && introChannel.position > introMusic.length - 1000){
        loopingChannel = loopingMusic.play(0, int.MAX_VALUE);
        hasBegunLooping = true;
    }
}