当alGetError()(在OpenAL中)返回-1而不是有效的错误代码时,这意味着什么?

时间:2012-04-27 03:51:05

标签: openal audio

我正在开发一款iOS游戏,我们在启动时创建一个OpenAL上下文,它存在于应用程序的生命周期中。我们分配了一个OpenAL源池。每次加载地图时,声音效果(.wav)都会加载到OpenAL缓冲区中,然后我们会在播放它们时查找可用的来源。加载/卸载的唯一内容是缓冲区本身。

运行一段时间后,一些声音在调用alPlaySource()时停止工作。对alGetError()的调用返回-1?在alPlaySource()调用之前,alGetError()返回0。

2 个答案:

答案 0 :(得分:2)

这可能是因为iOS将并发播放源的数量限制为32个。

另请参阅:maximum number of OpenAL sound buffers on iPhone

答案 1 :(得分:0)

我认为这是一个极其微妙的内存泄漏,导致一些奇怪的效果,如上所述。代码基于一些示例代码,即SoundEngine,已知它是有缺陷的,不应该使用。

我们最终切换到FMOD。