确定何时播放缓冲区而不在OpenAL中轮询源

时间:2011-04-04 21:05:01

标签: objective-c c openal

这甚至可能吗?如果某种程度上我设法在每次处理缓冲区时调用一个函数,那将会非常酷。除了对来源进行投票之外的任何其他想法都受到欢迎:D

1 个答案:

答案 0 :(得分:0)

您知道每个缓冲区中有多少样本,并且您知道源正在播放的采样率。这应该让你很清楚源何时完成缓冲区的处理。

如果您感觉非常强悍,可以将其破解为OpenAL-soft源。根据代码的外观,您可以将更改放在文件最末端的mixer.c,即MixSource()函数末尾附近。

当然,记住OpenAL-soft是lGPL;因此,您需要释放/提供您对库本身所做的任何更改。

如果您使用预先包含的库,那么您没有很多选择。 OpenAL拒绝回调函数的想法。