iOS允许AVPlayer在后台继续播放
我正在开发一款内置视频播放器的应用程序,它可以播放磁盘上的iOS允许AVPlayer在后台继续播放,ios,swift,audio,video,avplayer,Ios,Swift,Audio,Video,Avplayer,我正在开发一款内置视频播放器的应用程序,它可以播放磁盘上的mp4视频,我试图让它在应用程序进入后台时继续播放(视频的)音频 我已经阅读了许多其他的堆栈溢出问题,但没有一个答案适用于我的案例 我补充说: func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { do
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文件中还有所需的背景模式键应用程序使用AirPlay播放音频或流式音频/视频。
但是,当应用程序进入后台时,AVPlayer
会停止
有人知道这个应用程序可能有什么问题吗
谢谢:)
编辑:注意:我正在将AVPlayerLayer
与AVPlayer
一起使用。也许这就是问题所在?是的AVPlayerLayer
可能造成问题。您需要将其从AVPlayer
对象中删除。在应用程序转到后台之前,设置为nil
两种解决方法根据苹果文件
禁用播放器项目中的视频曲目(仅限基于文件的内容)
从关联的AVPlayer中删除AVPlayerLayer(设置
AVPlayerLayer玩家属性为零)
有关更多信息,请参阅此