Real-time audio monitoring

My app provides real-time microphone monitoring and level metering on iPhone, iPad, and Mac using AVAudioEngine.

When users switch between built-in microphones, USB microphones, Bluetooth microphones, and Continuity Camera audio, the audio route often changes before audio buffers begin flowing. This can result in a brief period where the app sees a valid route but receives no audio data.

What is Apple's recommended approach in iOS 26 and macOS 26 for determining when an input route is truly ready for real-time monitoring after a route change?

There's always some delay after starting audio I/O and the first I/O cycle. With some transports, this delay is small (~100 ms), but with others (continuity camera is a good example) it can be larger. There isn't really a way to know what that delay will be. Generally, successfully starting I/O (whether via AudioDeviceStart, AudioOutputUnitStart, or -[AVAudioEngine startAndReturnError:]) means that an I/O cycle will occur in the "near future."

Can you please elaborate on the difficulty created by this delay between a route change and I/O starting/resuming?

Real-time audio monitoring
 
 
Q