【问题标题】:iOS Enable AVPlayer to continue playing in backgroundiOS 启用 AVPlayer 以继续在后台播放
【发布时间】:2017-10-12 13:51:43
【问题描述】:

我正在开发一个带有内置视频播放器的应用程序,该播放器可以播放磁盘中的mp4 视频,并且我正在尝试使其继续播放(视频的)音频应用进入后台。

我已经阅读了许多其他堆栈溢出问题,但没有一个答案适用于我的案例。

我已添加:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
  do {
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
      print("AVAudioSession Category Playback OK")

    do {
      try AVAudioSession.sharedInstance().setActive(true)
      print("AVAudioSession is Active")
    } catch let error as NSError {
      print(error.localizedDescription)
    }
  } catch let error as NSError {
      print(error.localizedDescription)
  }
}

此外,我在应用程序的 Info.plist 文件中还有所需的后台模式键 App plays audio or streams audio/video using AirPlay。 但是,当应用程序进入后台时,AVPlayer 会停止。

有人知道该应用可能有什么问题吗?

谢谢:)

编辑: 注意:我将AVPlayerLayerAVPlayer 一起使用。也许这就是问题所在?

【问题讨论】:

    标签: ios swift audio video avplayer


    【解决方案1】:

    是的AVPlayerLayer 可能会造成问题。您需要将其从 AVPlayer 对象中删除。在应用程序进入后台之前设置为nil

    根据Apple Document 两种方式解决,

    1. 禁用播放器项目中的视频轨道(仅限基于文件的内容)。

    2. 从关联的 AVPlayer 中移除 AVPlayerLayer(设置 AVPlayerLayer 播放器属性为零)。

    请参阅此link 了解更多信息。

    【讨论】:

      【解决方案2】:

      首先,您必须在 Capability 中启用“背景音频”。按照下面的链接这样做。

      [See image to Enable Background Audio]

      当您的应用移至后台时,将您的播放器分配为 nil。

      // If presenting video with AVPlayerViewController
          playerViewController.player = nil
      
      // If presenting video with AVPlayerLayer
          playerLayer.player = nil
      

      当您的应用再次移动到前台时,请按照以下说明进行操作。

      // If presenting video with AVPlayerViewController
      playerViewController.player = player
      
      // If presenting video with AVPlayerLayer
      playerLayer.player = player
      

      【讨论】:

        猜你喜欢
        • 2013-07-27
        • 1970-01-01
        • 1970-01-01
        • 2014-08-16
        • 1970-01-01
        • 2012-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多