【发布时间】:2019-03-28 15:51:41
【问题描述】:
在 iOS12 中,如果网络请求不是 URLSessionDownloadTask,则苹果开始取消网络请求并设置后台会话。
但根据苹果官网:
您不必在后台进行所有后台网络活动 会话...声明适当的应用程序 后台模式可以使用默认的 URL 会话和数据任务,就像 如果他们在前台
我正在使用自定义播放器流式传输媒体文件,应用程序启用了 Audio 和 Background Fetch 模式。 URLSessionDataTask 在应用程序进入后台状态后立即在前台初始化任务被取消。
我知道 AVPlayer 可以在后台流式传输,但不能使用 AVPlayer。
我知道我可以设置与URLSessionDownloadTask 的会话,它将在单独的进程中下载数据并返回文件路径,由于流式传输要求,这不是一个选项。
我知道我可以使用UIApplication.shared.beginBackgroundTask 请求额外的后台执行时间,但这不是可接受的解决方案,因为如果backgroundTimeRemaining 在流完成应用程序之前到期,则会被终止。
当应用程序处于后台模式时,有什么方法可以继续接收数据?
【问题讨论】:
-
您是否 100% 确定您的“自定义播放器”使应用程序在后台运行并且应用程序没有被暂停?
-
是的。只要缓冲区中有数据,它就会播放,然后停止。
标签: ios