当应用程序处于后台时,是否无法更改 AVPlayer 或 AVQueuePlayer 中的播放器项目
Is it impossible to change the player item(s) in an AVPlayer or in an AVQueuePlayer while app is in Background
我正在使用 AVPlayer 流式传输远程音频文件。当一个项目结束时,我会将一个新项目加载到 AVPlayer 中,然后再次开始播放。这在 iOS 9.2 的前景和背景中都很有效。随着 iOS 9.3 的发布,此方法不再有效。我不得不切换到使用 AVQueuePlayer 以确保当一首歌曲结束时音频将继续播放下一首歌曲。
我现在的问题是,我的应用程序中有些场景需要 AVQueuePlayer 或 AVPlayer 获取新的 URL 并将其加载到播放器中,然后开始播放,所有这些都在后台进行。这在 iOS 9.2 中工作正常,但现在在 9.3 中它停止工作了。
有人知道为什么它停止工作以及如何修复它吗?苹果做出这样的改变而不提及任何事情是很常见的吗?
更新: 我什至尝试过破解,我开始播放第二个播放器,而第一个播放器从新 URL 加载新项目,这样音频就不会停止。这也没有用。
通过添加行
UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
查看加载...这解决了问题...
我正在使用 AVPlayer 流式传输远程音频文件。当一个项目结束时,我会将一个新项目加载到 AVPlayer 中,然后再次开始播放。这在 iOS 9.2 的前景和背景中都很有效。随着 iOS 9.3 的发布,此方法不再有效。我不得不切换到使用 AVQueuePlayer 以确保当一首歌曲结束时音频将继续播放下一首歌曲。
我现在的问题是,我的应用程序中有些场景需要 AVQueuePlayer 或 AVPlayer 获取新的 URL 并将其加载到播放器中,然后开始播放,所有这些都在后台进行。这在 iOS 9.2 中工作正常,但现在在 9.3 中它停止工作了。
有人知道为什么它停止工作以及如何修复它吗?苹果做出这样的改变而不提及任何事情是很常见的吗?
更新: 我什至尝试过破解,我开始播放第二个播放器,而第一个播放器从新 URL 加载新项目,这样音频就不会停止。这也没有用。
通过添加行
UIApplication.sharedApplication().beginReceivingRemoteControlEvents()
查看加载...这解决了问题...