我正在寻找一种方法来处理AppleTV上的Siri中断。
根据本指南:https://developer.apple.com/documentation/avfoundation/avaudiosession/responding_to_audio_session_interruptions应该可以获得音频会话中断的通知,但这似乎不起作用。
我试过了
NotificationCenter.default.addObserver(
self,
selector: #selector(handleInterruption(_:)),
name: .AVAudioSessionInterruption,
object: nil)
回调永远不会发生。
我想要的是在用户使用Siri时暂停视频,然后在完成后恢复。
答案 0 :(得分:0)
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
来做出反应。