我对动作脚本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秒直到声音开始。
有没有人有其他解决方案?最重要的是在声音开始之前加载声音,是否可能?因为它已经在我的库上了,所以,它不是装载机箱......谢谢!!
答案 0 :(得分:0)
您的测试测量结果不准确。闪存声音具有超过50ms至300ms的高延迟,具体取决于系统。因此,它们不能用于您想要做的事情。您需要使用ane或任何外部声音播放系统来实现准确性(低延迟)。没有已知的方法来减少Flash Sound上的延迟,在FP 10中引入了采样数据事件,为开发人员提供了一种同步声音的方法,但该系统并不适用于低延迟响应声音(采样数据事件的延迟时间可达1000毫秒)。
底线,使用Flash Sound API,由于其高延迟,无法准确同步声音播放。没有工作可行,也没有可能将延迟降低到最低行业标准(30ms)。你想要实现的目标不可能在Flash中完成。