如何阻止iOS自动删除为脱机播放而保存的HLS内容?

时间:2018-04-03 22:35:47

标签: ios hls avassetdownloadtask avassetdownloadstoragemanager

HLS离线播放是在2016年WWDC中的this session,iOS 10中宣布的。但是在大约21:20时,主持人正在谈论下载的文件不应该从哪里移动AVAssetDownloadTask放置它们,因为如果磁盘空间不足,系统可能需要删除它们。文档中还提到了here这种可能性:

  

重要

     

如果可用磁盘空间极低,操作系统可能会自动删除下载的资产。在向用户显示资产可供播放之前,请验证资产是否存在且可脱机播放。

我正在构建一个应用程序,用HLS播放DRM音频内容,我想支持流媒体和下载,因此用户可以保存他们想要的文件进行离线播放。但是,如果下载的文件在未经用户许可的情况下被删除,那就是一种废话体验。

所以我的问题:如何防止系统删除下载的文件?我可以移动它们,即使是documentation explicitly says not to吗?我可以通过不同的方式下载文件吗? iOS 11中有一个新类AVAssetDownloadStorageManager,它支持将存储管理策略设置为默认或重要...是否保证系统不会删除" important"下载媒体而不至少先询问用户? Roger Pantos在Advances in HTTP Live Streaming at WWDC 2017中说,系统可能会在询问用户后删除资产以为软件更新腾出空间,但该声明并不意味着资产因其他原因而无法自动删除。 / p>

1 个答案:

答案 0 :(得分:0)

几年来,我们一直在将下载的资产从提供的位置移至FileManager.default.urls(for: .documentDirectory, in: .userDomainMask),到目前为止,还没有发现任何问题。

我不确定这是否是个好习惯,很可能不是。