首页 > 解决方案 > 如何在iOS中将电话应用程序发送到后台

问题描述

在我的应用程序中,我有一个要求。我正在运行我的应用程序并使用AVPlayerViewcontroller. 在中间我接到了电话,我已经接听了电话,我的视频将暂停。5秒后,我将从服务器获取新的 url 以播放AVPlayerViewcontroller。那个时候新的网址在后台播放可以听到声音和电话。在这种情况下,我想将手机应用程序发送到后台,并希望看到在 avplayer 中播放的视频。

请让我知道有什么方法可以实现这一点。

标签: iosavplayernsurlsessionavplayerviewcontroller

解决方案


迅速:

  1. 观察中断通知
func setupNotifications() {
    let notificationCenter = NotificationCenter.default
    notificationCenter.addObserver(self,
                                   selector: #selector(handleInterruption),
                                   name: .AVAudioSessionInterruption,
                                   object: nil)
}
  1. 响应中断通知
@objc func handleInterruption(notification: Notification) {
    guard let userInfo = notification.userInfo,
        let typeValue = userInfo[AVAudioSessionInterruptionTypeKey] as? UInt,
        let type = AVAudioSessionInterruptionType(rawValue: typeValue) else {
            return
    }
    if type == .began {
        // Interruption began, take appropriate actions
    }
    else if type == .ended {
        if let optionsValue = userInfo[AVAudioSessionInterruptionOptionKey] as? UInt {
            let options = AVAudioSessionInterruptionOptions(rawValue: optionsValue)
            if options.contains(.shouldResume) {
                // Interruption Ended - playback should resume
            } else {
                // Interruption Ended - playback should NOT resume
            }
        }
    }
}

苹果文档


推荐阅读