Вы можете использовать свойство «OtherAudioIsPlaying» аудиосеанса, чтобы проверить, использует ли в данный момент аудиооборудование другой системный процесс. Должно быть «true», если VoiceOver говорит, и «false», если нет.
На самом деле это может не работать должным образом, если пользователь играет музыку в фоновом режиме. Но большинство пользователей, использующих VoiceOver, обычно не имеют никакого другого включенного звука постоянно, поскольку это усложняет понимание того, что говорит VoiceOver.
Вот пример использования:
UInt32 otherAudioIsPlaying;
UInt32 propertySize = sizeof(otherAudioIsPlaying);
AudioSessionGetProperty(kAudioSessionProperty_OtherAudioIsPlaying,&propertySize, &otherAudioIsPlaying);
if(otherAudioIsPlaying) {
// other application is generating sound output (including VoiceOver)
// but might also be any other app (like iPod App)
}