Как справиться с прерыванием Siri на Apple TV
Я ищу способ справиться с перебоями Сири на AppleTV.
Согласно этому руководству: https://developer.apple.com/documentation/avfoundation/avaudiosession/responding_to_audio_session_interruptions должна быть возможность получать уведомления о прерывании аудиосеанса, но, похоже, это не работает.
я пытался
NotificationCenter.default.addObserver(
self,
selector: #selector(handleInterruption(_:)),
name: .AVAudioSessionInterruption,
object: nil)
Обратный вызов никогда не происходит.
То, что я хотел бы, это приостановить видео, пока пользователь использует Siri, а затем возобновить, когда они закончили.
1 ответ
internal func registerToHandleInterruptions() {
// When Siri interrupts playback a UIApplicationWillResignActive notification will be triggered
NotificationCenter.default.addObserver(
self,
selector: #selector(handleInterruption(_:)),
name: .UIApplicationWillResignActive,
object: nil)
// When Siri returns control to the app, a UIApplicationDidBecomeActive notification is fired
NotificationCenter.default.addObserver(
self,
selector: #selector(handleActive(_:)),
name: .UIApplicationDidBecomeActive,
object: nil)
}
После долгих поисков я понял следующее:
На tvOS не похоже, что прерывание Siri запускает
.AVAudioSessionInterruption
уведомление, несмотря на то, что говорится в официальной документации. (устарел?, не относится к tvOS?)Прерывание Siri фактически отправляет приложение в фоновый режим, поэтому можно реагировать, наблюдая
.UIApplicationWillResignActive
а также.UIApplicationDidBecomeActive
вместо.