这可能吗?如果我设法在每次处理缓冲区时调用一个函数,那就太酷了。除了轮询来源之外的任何其他想法都受到欢迎:D
最佳答案
您知道每个缓冲区中有多少样本,并且知道源播放的采样率。这应该可以让您很好地了解源何时完成缓冲区的处理。
如果您感觉非常勇敢,您可以将其侵入 OpenAL-soft 源代码。从代码的外观来看,您可以将更改放入文件最末尾的 mixer.c
中,即靠近 MixSource()
函数末尾的位置。
当然要记住,OpenAL-soft 是 lGPL;因此您需要发布/使您对库本身所做的任何更改可用。
如果您无法使用预包含的库,那么您没有太多选择。 OpenAL 拒绝回调函数的想法。
关于objective-c - 确定缓冲区何时已播放,无需轮询 OpenAL 中的源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5544344/