在非常具体但可重现的情况下,我得到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部分代码;它没有帮助。
公开发布答案 0 :(得分:1)
我们设法弄乱了C ++级别的东西。这可能导致AVAudioPlayer中的内存损坏而不会实际崩溃游戏,并且在模拟器和设备上表现相同。我们解决了这个问题,AVAudioPlayer现在正常工作。