AudioQueueStart falla con -16981 desde el process en segundo plano en iOS 7

En mi aplicación iOS en todas las versiones anteriores del sistema operativo, grabamos audio de vez en cuando, luego duermo un rato, luego lo grabo de nuevo y lo ciclo para siempre (el sueño es mantener la batería). Esto funcionó bien hasta iOS 7, incluso cuando la aplicación estaba en segundo plano. Ahora, cuando la aplicación está en segundo plano, la llamada a AudioQueueStart no puede comenzar a grabar con un error: -16981. Parece que no puedo encontrar este código de error en la documentation o en la Web, y si lo convierto en un NSError, dice: "La operación no se pudo completar (error de estado OS -16981.)", Que no es " No es de mucha ayuda.

Tengo la teoría de que Apple está cerrando un agujero aquí; la idea es; ¿Por qué querrías empezar a grabar desde un process en segundo plano, a less que estés espiando? Bueno, con el consentimiento de los usuarios (¡firmado y pagado!), Eso es exactamente lo que estamos haciendo.

Asi que; ¿Alguien puede confirmar o negar que esto se espera, o lo que podría hacer al respecto? Es un poco mortal para nuestra aplicación. Lo he archivado como un error con Apple, e intentaré reportar el progreso aquí.

ACTUALIZACIÓN: 3 de octubre de 2013

Aunque la respuesta anterior pareció funcionar para esto por un time; ha dejado de funcionar ahora con -12985, que se debe a que otra aplicación ha activado el audio. Por supuesto, esto es por lo que necesito usar la bandera de mezcla.

ACTUALIZAR:

iOS 7.0.3 (y posterior) parece haber solucionado este problema por completo.

Después de jugar con diferentes properties de session de audio, encontré que el error -16981 tiene lugar cuando kAudioSessionProperty_OverrideCategoryMixWithOthers está habilitado (TRUE). Tan pronto como lo establezco en '0', AudioQueueStart () se ejecuta correctamente. Entonces, antes de comenzar la session de audio intente:

UInt32 allowMixing = 0; status = AudioSessionSetProperty ( kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof (allowMixing), &allowMixing); 

Claramente, este es el cambio de comportamiento en iOS 7. Como se mencionó anteriormente, la documentation no muestra el código de error -16981.