Critical Alerts - Do critical alert sounds play one at a time, or can two overlap?

I'm using UNNotificationSound.criticalSoundNamed with the Critical Alerts entitlement. I have two separate alarms that can each be active at the same time, each scheduling its own local notification on a repeating timer.

Before switching to critical alerts, I played these with two AVAudioPlayer instances, and they overlapped fine. Now, using critical alert notifications instead, only one sound plays at a time — even when both are triggered around the same time.

Is this expected? Does iOS only ever play one critical alert sound at a time per app (or system-wide), or is there a way to get two to play simultaneously?

Answered by DTS Engineer in 897686022

Thanks for the post and hopefully you have looks at the documentation yet don't explicitly document this, but the behavior you're seeing matches well-known real world behavior of critical alerts where a critical notification should be only one.

https://developer.apple.com/documentation/usernotifications/unnotificationsound/criticalsoundnamed(_:)

Critical alert sounds aren't played by your app's audio session the way AVAudioPlayer sounds are and they also require an entitlement to do. This system-level notification-sound player is effectively a single shared resource therefore playing 2 should be impossible? So will be obvious that the second sound is deferred until the first finishes, then plays or the second sound is dropped/cut short. Expecting both to play will not be a critical alert, it will be a bug in my modest opinion.

f your use case genuinely requires two independent alarms to be audibly overlapping specifically while the app is running I would recommend to put them together as an audio file. However if is not critical go back to AVAudioPlayer with AVAudioSession.Category.playback and route around notifications entirely for audio will be my suggestion. Good luck.

Albert  WWDR

Accepted Answer

Thanks for the post and hopefully you have looks at the documentation yet don't explicitly document this, but the behavior you're seeing matches well-known real world behavior of critical alerts where a critical notification should be only one.

https://developer.apple.com/documentation/usernotifications/unnotificationsound/criticalsoundnamed(_:)

Critical alert sounds aren't played by your app's audio session the way AVAudioPlayer sounds are and they also require an entitlement to do. This system-level notification-sound player is effectively a single shared resource therefore playing 2 should be impossible? So will be obvious that the second sound is deferred until the first finishes, then plays or the second sound is dropped/cut short. Expecting both to play will not be a critical alert, it will be a bug in my modest opinion.

f your use case genuinely requires two independent alarms to be audibly overlapping specifically while the app is running I would recommend to put them together as an audio file. However if is not critical go back to AVAudioPlayer with AVAudioSession.Category.playback and route around notifications entirely for audio will be my suggestion. Good luck.

Albert  WWDR

Critical Alerts - Do critical alert sounds play one at a time, or can two overlap?
 
 
Q