I have a test application set to run in the background. It calls deviceManager.closeAudioDevice() when interruptions are detected, and when a routing change is detected. A user action can then resume the running state calling deviceManager.restartLastAudioDevice();
This works great for everything (call interruptions, playing the music player, removing headphones) . . apart from Siri. When Siri interrupts playback, the device is closed, but when restartLastAudioDevice() is called by some user action, the buffersize has doubled relative to before the interruption. Eh?