Нет ничего общего со SwiftUI или пользовательским интерфейсом в целом, чтобы возобновить воспроизведение после прерывания.
Как сказано в документации Apple :
Сначала зарегистрируйтесь в уведомлении о прерывании:
func registerForNotifications() {
NotificationCenter.default.addObserver(self,
selector: #selector(handleInterruption),
name: .AVAudioSessionInterruption,
object: AVAudioSession.sharedInstance())
}
Затем обработайте уведомление следующим образом:
func handleInterruption(_ notification: Notification) {
guard let info = notification.userInfo,
let typeValue = info[AVAudioSessionInterruptionTypeKey] as? UInt,
let type = AVAudioSessionInterruptionType(rawValue: typeValue) else {
return
}
if type == .began {
// Interruption began, take appropriate actions (save state, update user interface)
}
else if type == .ended {
guard let optionsValue =
userInfo[AVAudioSessionInterruptionOptionKey] as? UInt else {
return
}
let options = AVAudioSessionInterruptionOptions(rawValue: optionsValue)
if options.contains(.shouldResume) {
// Interruption Ended - playback should resume
}
}
}
Если это не поможет, вы могли бы лучше объяснить проблему, возникающую у вас с другими решениями, которые не работают в вашем случае.