2017-05-13 123 views
2

我正在使用内置视频播放器的应用程序播放mp4来自磁盘的视频,并且我正在尝试使其播放继续播放音频(视频)时应用进入背景iOS使AVPlayer继续在后台播放

我读过很多其他堆栈溢出问题,但没有答案为我的案件工作。

我已经加入:

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在应用程序进入后台时停止。

任何人都知道应用程序可能会出现什么问题?

谢谢:)

编辑:注:我使用AVPlayerLayer连同AVPlayer。也许这是问题?

回答

2

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

两种方式根据苹果文档解决,

  1. 禁用玩家项目的视频轨(基于文件的内容只)。

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

请参阅本link获取更多信息。

+0

谢谢,解决了这个问题。 :) –