从库中播放声音导致一点点延迟Actionscript 3.0

时间:2014-07-17 17:51:19

标签: actionscript-3 flash audio

我对动作脚本3中的声音很新,并且我在详细的毫秒项目中遇到了一些麻烦,这非常重要,它是准确的......

我正在运行一个每500毫秒有一次'点击'的声音,我想在第一个声音开始后250毫秒播放其他声音...所以,起初,我只是试图用最简单的方式制作所有声音,用这个:

import flash.display.MovieClip;

var som:som1 = new som1;
var som2:som2 = new som2;

som.play(0,100);

var myInterval:uint = setInterval(myFunction, 250);

function myFunction():void{
    som2.play(0,100);
    clearInterval(myInterval);
}

在第一个声音开始后它有延迟350毫秒......

所以,在第二次尝试中,我创建了一个按钮,用于启动/停止上面的代码......我发现:在第一次播放时,我有350毫秒的延迟,但在第二次(停止和播放后)它再次),它完美,250毫秒,因为我想要!

所以,我的解决方案是做一个无声的第一次播放,没有声音,只是在后台,为'加载'它,用这个:

var firsttime:Boolean = true;
var transform1:SoundTransform = new SoundTransform();
transform1.volume = 0;

if (firsttime == true){
        Som1Channel = som.play(0,1);
        Som1Channel.soundTransform = transform1;
        firsttime == false;

} 

并且它的工作完美......但是这一切只是测试主要应用程序,它将有25秒的声音。并且用户不能等待25秒直到声音开始。

有没有人有其他解决方案?最重要的是在声音开始之前加载声音,是否可能?因为它已经在我的库上了,所以,它不是装载机箱......谢谢!!

1 个答案:

答案 0 :(得分:0)

您的测试测量结果不准确。闪存声音具有超过50ms至300ms的高延迟,具体取决于系统。因此,它们不能用于您想要做的事情。您需要使用ane或任何外部声音播放系统来实现准确性(低延迟)。没有已知的方法来减少Flash Sound上的延迟,在FP 10中引入了采样数据事件,为开发人员提供了一种同步声音的方法,但该系统并不适用于低延迟响应声音(采样数据事件的延迟时间可达1000毫秒)。

底线,使用Flash Sound API,由于其高延迟,无法准确同步声音播放。没有工作可行,也没有可能将延迟降低到最低行业标准(30ms)。你想要实现的目标不可能在Flash中完成。