我在 Flash AS3 中循环播放声音时遇到一些问题,因为当我告诉声音循环时,我在音频的结尾/开始处出现轻微的延迟。
音频剪辑正确,并且可以在车库乐队上无间隙地播放。
我知道 Flash 中普遍存在声音问题、编码错误以及 SOUND_COMPLETE 事件的不准确性(Adobe 对这些问题的处理应该感到尴尬)
我尝试在 Sound 类的 play 方法中使用内置循环参数,并对 SOUND_COMPLETE 事件做出反应,但两者都会导致延迟。
但是有没有人想出一种技术可以让声音循环播放而没有任何明显的间隙?
如果您可以使用 Flash Player 10,最可靠的方法是使用新的 SampleDataEvent.SAMPLE_DATA 事件。
具体来说,您要做的就是首先实例化您想要的声音,然后使用新的 extract 方法将声音转换为以 ByteArray 编码的原始 PCM 数据。然后您可以创建一个新的 Sound 对象,并设置侦听它的 SampleDataEvent.SAMPLE_DATA 事件。当调用该事件时,您将从 ByteArray 推送 2-8k(较低的量可以减少延迟,但会增加听到声音的可能性)数据。您只需确保当您运行完 ByteArray 的末尾时,您将循环回到开头。
此方法可确保您获得完全无缝的播放。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)