1

在非常具体但可重现的情况下,我遇到audioPlayerDecodeErrorDidOccur:error:了以下 NSError:

Error Domain=NSOSStatusErrorDomain Code=-50 "The operation couldn’t be completed. (OSStatus error -50.)"

这发生在也使用 OpenAL 的游戏中;我们正在使用 OpenAL 播放声音,但尝试利用硬件 AAC 解码。但是,上述情况的发生似乎与我们在 OpenAL 中所做的任何事情无关。

这发生在我们执行场景(游戏模式)切换后大约 2-3 秒——但仅限于从场景到场景的某些组合。它甚至更奇怪,因为我们没有做与这些事件相关的重要音频。我已经证实我们对 . 什么都不做AVAudioPlayer,但似乎 OpenAL 也没有做任何重要的事情。

我试图通过释放AVAudioPlayer, 并将其替换为引用同一文件、使用相同卷并从文件中的同一时间恢复的另一个来解决此问题。但是,几秒钟后,该播放器也抛出了上述错误。另一方面,切换到一首新歌曲会创建一个功能齐全的播放器,没有任何问题。

我的问题是:在这种情况下,错误 -50 是什么意思,或者您将如何弄清楚它的含义?

(如果这意味着什么,游戏必须至少在 iOS 3.1.2 上运行)。


我们已经尝试禁用 OpenAL 部分代码;它没有帮助。

音频库代码可在http://libxal.svn.sf.net/svnroot/libxal/trunk/上公开获得

4

1 回答 1

1

我们设法在 C++ 级别上搞砸了一些东西。这可能会导致 AVAudioPlayer 中的内存损坏,而不会真正使游戏崩溃,并且在模拟器和设备上的行为相同。我们修复了这个问题,现在 AVAudioPlayer 可以工作了。

于 2011-01-15T09:06:09.847 回答