¿Cómo puedo evitar interrumpir el audio que ya se está reproduciendo cuando se inicia mi aplicación?

Tengo una aplicación que necesita usar AVAudioSessionCategoryPlayback para reproducir el sonido mientras el dispositivo está bloqueado o mi aplicación está en segundo plano. (Es una function de alarma). También necesito configurar la key de "audio" en mi list UIBackgroundModes.

He puesto el siguiente código en mi application:didFinishLaunchingWithOptions: method:

 [[AVAudioSession shanetworkingInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil]; 

Sin embargo, no quiero interrumpir ninguna música que ya se esté reproduciendo en el dispositivo. Cuando se inicia mi aplicación, hace que Spotify (por ejemplo) deje de reproducir música. Puedo cambiar a Spotify y presionar Reproducir, y cuando vuelvo a mi aplicación, sigue reproduciendo.

Pero esto es muy molesto para el usuario: las alarmas no son lo único que hace mi aplicación, y hay muchas razones para su lanzamiento que no implican la configuration de alarmas. No creo que el usuario quiera que mi aplicación detenga ninguna otra reproducción de audio en el dispositivo.

Idealmente, nunca interrumpiría el audio que ya estaba en reproducción. También podría vivir con la detención de audio cuando se establece una alarma (en ese momento tengo que activar mi session de audio para asegurarme de que puedo reproducirla), pero parece que no hay forma de evitar la parada de audio en inicio de la aplicación

¿Hay alguna forma de iniciar mi aplicación con la session de audio deshabilitada o para comenzar con esta opción ya aplicada?

Resultó que estaba llamando a .prepareForPlayback() en un AVAudioPlayer en un método init() que se llamaba mucho antes de que mi didFinishLaunchingWithOptions: .