应用程序:两个使用Cocos2d的通用iOS游戏,拥有大量客户群。
问题:几个月前(2011年),开始出现报告说声音会随机中断,应用程序只播放部分声音,其他声音则不播放。这个问题只能通过设备重启才能修复。
重要提示和详细信息:
同样的代码和相同的声音文件在一年多的时间里一直没有出现过此类错误报告。我希望我能确定一个日期,但我认为该问题始于iOS更新。
这个bug非常难以重现。我个人见过一次,但我无法再次引发它。尽管如此,我们每天收到1-2封支持电子邮件,都是关于同样的问题,其中一些形成了糟糕的评论。如果我必须瞎猜一个数字,我会猜测它是千分之一的发生率。看起来在iPad上可能更常见,但我不确定。
重新启动设备是唯一解决该问题的方法。重新启动应用程序无效,删除应用程序并重新安装也无效,必须强制关机然后重新开机。
几周前,为了盲目地修复问题,我放弃了Cocos2d音效引擎,并将其中一款应用程序切换到ObjectAL(另一个基于OpenAL的音效引擎),希望它能解决问题。但它没有,同样的问题仍在发生。正如您所看到的,这两个引擎都是OpenAL的接口。
声音文件使用苹果推荐的方法转换为caf格式,使用-c 1标志使它们成为单声道。 ( https://developer.apple.com/library/ios/#codinghowtos/AudioAndVideo/_index.html )
仅仅为了明确,此故障与通常的声音问题(静音开关、音量)无关。部分声音正常播放,但在设备关闭并重新启动之前,它们将永远不会全部播放。
如果有任何想法,我会非常感激帮助。我已经失去耐心,试图修复一个我无法重现且似乎是由我无法控制的东西引起的持久性故障。