iOS使AVPlayer继续在后台播放
问题描述:
我正在使用内置视频播放器的应用程序播放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
。也许这是问题?
答
是的AVPlayerLayer
可能会造成问题。您需要将其从AVPlayer
对象中删除。在应用程序转到后台之前设置为nil
。
两种方式根据苹果文档解决,
禁用玩家项目的视频轨(基于文件的内容只)。
从其关联的AVPlayer中移除AVPlayerLayer(设置 AVPlayerLayer播放器属性为零)。
请参阅本link获取更多信息。
谢谢,解决了这个问题。 :) –