【发布时间】:2015-04-08 20:49:47
【问题描述】:
我创建了一批用这个工具组装的声音:
AudioSprite
https://github.com/tonistiigi/audiosprite
输出通常用于 JS 库,例如 Howler、Zynga Jukebox 或 SoundJS - 但我想看看是否可以在 AS3 中实现。
我开始创建一个声音播放器,它可以根据该工具生成的 JSON 和 MP3 文件加载、解析和播放声音。
到目前为止一切顺利! ... 除了循环。
现在,大问题是 - 有没有一种方法可以无缝播放声音循环,因为所有音乐和声音共存于同一个 MP3 文件中,并且它具有 start &结束 范围播放并停止它?
Example of how the sounds are placed in the file:
mygame_sounds.mp3 = [BUZZ + LASER + BOING ... + TRACKLOOP]
我正在寻找一种不涉及使用SAMPLE_DATA 事件的解决方案(因为它会占用大量 CPU 资源)。如果没有办法,请解释原因。
到目前为止,我在使用给定 AudioSprite 持续时间后触发的 flash.utils.Timer 对象取得了一定的成功,但并不一致。
要停止/处理 非循环 声音,我依赖于 Master Timer(以非常短的间隔运行),这似乎“削减”了样本适当地。但是我已经尝试过使用这个主定时器来一遍又一遍地播放循环声音——同样的延迟问题。
是否有任何方法可以预测/测量声音完成一次传递时预期的延迟时间?
【问题讨论】:
-
对不起,误导性的 [howler.js] 标签,但我没有足够的代表来创建“audiosprite”。如果可以,请这样做。您也可以在此问题中替换此处的标记。
-
是否愿意解释原因,Mr. / Ms. Downvote?
-
我真的不知道为什么要投反对票,所以我给了 +1 以提高它的水平...无论如何,您到底遇到了什么样的延迟问题?你不能在你的应用中预处理声音文件(创建不同的声音对象来循环声音)吗?
-
理论上,当然,一个单独的 WAV/MP3 可以用于需要无缝重复的声音,但这更多的是一个可重用性问题(能够重用相同的 AudioSprite 合并的 MP3 声音之间HTML5 和 Flash,给定一个 JSON 文件来描述 id/start/end/loop 属性)。
标签: actionscript-3 flash audio mp3 howler.js