OpenAL - 向后播放缓冲区?

时间:2010-01-29 14:48:52

标签: cocoa-touch audio core-audio openal

我正在使用OpenAL开发一个可可触摸应用程序,但如果我被迫(我真的不需要3D东西),我愿意切换到另一个框架。

我一直在寻找一种向后播放声音的方法,但我只找到了(非常复杂的)使用音频单元的例子。无论如何可能反过来存储一个缓冲区,所以我可以使用OpenAL向后播放它?

1 个答案:

答案 0 :(得分:2)

你可以通过重新排序波形数据上的每个样本来向后播放声音,这就像二进制数据操作一样简单。

openAL无法从数据末尾读取样本到第一个数据,但您可以通过使用大小为样本大小的缓冲区将数据排入openAL来实现,例如,如果您使用的是16-比特波,你需要有大量2字节大小的缓冲区,然后向后逐行将它排入openAL,这不是很有效。

最好先对波形数据进行预处理,使其向后,因此您有两个数据(或轨道),普通数据和后向数据,然后您可以根据应用事件播放哪些数据/轨道。