Hi,
I’m having some trouble with interstitial ads where they seem to kill the system audio player on iOS.
For example; If I’m listening to a podcast, and open my app (and the interstitial (mraid) gets preloaded), the podcast stops, and the system audio player resets.
When debugging using a simulator, and breaking on any exception, I can see that something gets thrown here:
* thread #27: tid = 0x184deef, 0x05a9c6b1 libc++abi.dylib`__cxa_throw, queue = 'com.apple.coremedia.player.item', stop reason = breakpoint 1.2
* frame #0: 0x05a9c6b1 libc++abi.dylib`__cxa_throw
frame #1: 0x172e1d48 AudioCodecs`ACBaseCodec::GetPropertyInfo(unsigned long, unsigned long&, unsigned char&) + 440
frame #2: 0x1737f2fd AudioCodecs`GetPropertyInfo(void*, unsigned long, unsigned long*, unsigned char*) + 45
frame #3: 0x00ad9ce9 AudioToolbox`AudioCodecGetPropertyInfo + 89
frame #4: 0x0099dca0 AudioToolbox`CodecConverter::CheckInitialize(void const*, unsigned long) + 512
frame #5: 0x0099d91c AudioToolbox`CodecConverter::CodecConverter(OpaqueAudioComponent*&, OpaqueAudioComponentInstance*, StreamDescPair const&, StreamDescPair const&, bool, AudioConverterPrimeInfo const&) + 652
frame #6: 0x0099e5a1 AudioToolbox`CodecConverter::CodecConverter(OpaqueAudioComponent*&, OpaqueAudioComponentInstance*, StreamDescPair const&, StreamDescPair const&, bool, AudioConverterPrimeInfo const&) + 65
frame #7: 0x009a4004 AudioToolbox`CodecDecoderFactory::BuildCodecConverterChain(StreamDescPair const&, ChainBuildSettings const&, AudioConverterChain*, PCMConverterFactory*) + 276
frame #8: 0x009803b1 AudioToolbox`ConverterRegistry::CreateConverter(StreamDescPair const&, AudioConverterChain**, unsigned long, AudioClassDescription const*) + 257
frame #9: 0x009687e6 AudioToolbox`_AudioConverterNewInternal + 342
frame #10: 0x0096889f AudioToolbox`AudioConverterNew + 47
frame #11: 0x009d56eb AudioToolbox`AudioQueueObject::AudioQueueObject(bool, bool, AudioStreamBasicDescription const&, unsigned long, AQRemoteClient&, AudioQueueOwner*, audit_token_t, unsigned int, long&) + 2363
frame #12: 0x009d6297 AudioToolbox`AudioQueueObject::AudioQueueObject(bool, bool, AudioStreamBasicDescription const&, unsigned long, AQRemoteClient&, AudioQueueOwner*, audit_token_t, unsigned int, long&) + 119
frame #13: 0x00a12e60 AudioToolbox`AQServer_NewQueue + 704
frame #14: 0x00a20144 AudioToolbox`AudioQueueNew(bool, AudioStreamBasicDescription const*, TCACallback<void*, void*> const&, CACallbackTarget const&, unsigned long, unsigned int, OpaqueAudioQueue**) + 420
frame #15: 0x00a1ff8b AudioToolbox`AudioQueueNewOutput + 91
frame #16: 0x06743fb3 MediaToolbox`FigAudioQueueTimingShimNewOutput + 77
frame #17: 0x065f27a2 MediaToolbox`subaq_createSubAudioQueue + 784
frame #18: 0x065f20b1 MediaToolbox`FigAudioQueueCreate + 793
frame #19: 0x066c1b59 MediaToolbox`FigAudioQueueRenderPipelineCreate + 675
frame #20: 0x066682e8 MediaToolbox`fp_buildAudioRenderPipelineForTrack + 951
frame #21: 0x0666653e MediaToolbox`itemfig_rebuildRenderPipelinesAndBoss + 11330
frame #22: 0x06663165 MediaToolbox`playerfig_prepareWorkingItem2 + 156
frame #23: 0x06662ef9 MediaToolbox`playerfig_prepareWorkingItem + 109
frame #24: 0x0667b212 MediaToolbox`itemfig_assetPropertyBatchLoaded_prepareWorkingItem_f + 147
frame #25: 0x061079cd libdispatch.dylib`_dispatch_client_callout + 14
frame #26: 0x060eb63c libdispatch.dylib`_dispatch_queue_drain + 2227
frame #27: 0x060eaaf0 libdispatch.dylib`_dispatch_queue_invoke + 570
frame #28: 0x060ed7a7 libdispatch.dylib`_dispatch_root_queue_drain + 550
frame #29: 0x060efca1 libdispatch.dylib`_dispatch_worker_thread + 122
frame #30: 0x06435a26 libsystem_pthread.dylib`_pthread_body + 138
frame #31: 0x0643599c libsystem_pthread.dylib`_pthread_start + 155
frame #32: 0x06432f96 libsystem_pthread.dylib`thread_start + 34
Because of this, the app isn’t really usable, as it will force the user to go back to the music/podcast app to resume playing whatever they are listening too.
Any ideas?