如何处理Apple TV上的Siri中断

时间:2018-04-04 15:11:44

标签: tvos siri

我正在寻找一种方法来处理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时暂停视频,然后在完成后恢复。

1 个答案:

答案 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来做出反应。