初始化AudioUnit的正确姿势

Init AudioUnit When App Is in Background


在使用AudioUnit的过程中发现当app在后台时调用extern OSStatus AudioUnitInitialize(AudioUnit inUnit)方法返回561015905错误码,解析成string后是!pla,google错误码后毫无收获,于是只能workaround。面对这个问题我的workaround是当出现初始化失败的情况下会在程序进入前台时再尝试调用AudioUnitInitialize方法来初始化AudioUnit。至此问题已经在一定程度上得到了解决,只要用户进入前台就可以正确初始化AudioUnit并且播放音乐。

今天在应对某个用户反馈时发现该用户在使用remoteControl过程中无法启动播放的情况正是因为后台init AudioUnit会失败导致程序无法如预期工作。于是灵光一闪,觉得在初始化AudioUnit之前先调用AudioSessionInitialize并setActive是否就可以解决问题。尝试之后发现果然可以…(之前都在AudioUnitInitialize成功后才去init audiosession)。



原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0

Comments