我创建了一批用这个工具组装的声音:
音频 Sprite
https://github.com/tonistiigi/audiosprite
输出通常用于 JS 库,例如 Howler、Zynga Jukebox 或 SoundJS——但我想看看是否可以在 AS3 中实现。
我开始创建一个声音播放器,它可以根据该工具生成的 JSON 和 MP3 文件加载、解析和播放声音。
到现在为止还挺好! ...除了循环。
现在,大问题是 - 考虑到所有音乐和声音共存于同一个 MP3 文件中,有没有办法无缝播放声音循环,并且它有 开始和结束 范围打和停吗?
Example of how the sounds are placed in the file:
mygame_sounds.mp3 = [BUZZ + LASER + BOING ... + TRACKLOOP]
我正在寻找 的解决方案不 涉及使用
SAMPLE_DATA
事件(考虑到它消耗了大量的 CPU 使用率)。如果没有办法解决,请解释原因。到目前为止,我使用
flash.utils.Timer
取得了轻微的成功在给定 AudioSprite 的持续时间后触发的对象,但不一致。要停止/处理非循环声音,我依靠 主定时器 (以非常短的间隔运行),这似乎适本地“切割”了样本。但是我已经尝试过使用这个主定时器来一遍又一遍地播放循环声音——同样的延迟问题。
是否有任何方法可以预测/测量声音完成一次传递时预期的延迟时间?
最佳答案
在 SoundJS 中,我们无法找到一种方法来允许在 AS3 中平滑循环音频 Sprite 并使用计时器。我们发现 Web Audio 是唯一允许平滑循环的 api,因此如果可能使用任何其他插件,建议不要使用音频 Sprite 来处理需要平滑循环的声音。
希望有帮助。
关于actionscript-3 - 如何在没有 SAMPLE_DATA 的情况下从 AS3 中的 AudioSprite 播放无缝循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29525087/