2011-04-04 73 views
0

这甚至有可能吗?如果我设法在每次处理缓冲区时调用一个函数,会更加酷。除了轮询任何其他的想法它欣源:d确定缓冲区何时在没有在OpenAL中轮询源时播放

+2

您的意思是轮询来源? – geofftnz 2011-04-04 21:10:02

+0

+1事实上,我做到了,我们对此深感抱歉,我已经编辑了问题 – 2011-04-04 21:13:36

+0

下面是类似的东西:http://stackoverflow.com/questions/1046315/getting-notified-when-a-sound-is-done-playing-在-OpenAL的 – geofftnz 2011-04-04 21:20:29

回答

0

你知道有多少样本中每个缓冲区,你知道的采样率来源是在玩。这应该给你一个关于何时源将完成缓冲区处理的相当好的想法。

如果你感到非常强悍,你可以攻入OpenAL的软源这一点。通过代码的外观,您可以将更改置于mixer.c文件的最后,在函数末尾的某处。

记忆,当然,OpenAL的软是LGPL;因此您需要发布/提供您对库本身所做的任何更改。

如果您正在使用预包含的库卡,那么你就没有太多的选择。 OpenAL拒绝回调函数的想法。

+0

我想我明白你在说什么,但是,我不知道我是否可以触摸这个OpenAL(iOS)的实现。如果可以的话,只要实际处理与处理器相关,就知道每个缓冲区的采样率和采样数量对我有帮助吗? (可能需要更多或更少)。 – 2011-04-05 18:04:52

+0

我怀疑你可以更改iOS版本的OpenAL,但我认为你可以使用OpenAL-soft作为插件,或者其他的东西。我不确定你对评论的其他部分的含义。处理声音缓冲区所用的时间长度应该是更多或更少的处理器独立。 – JCooper 2011-04-05 18:14:13

+0

我选择你的答案,因为即使iOS不能工作(我最终投票来源),也许它可以帮助其他人工作在不同的平台上!谢谢! – 2011-04-05 18:21:15

相关问题