我想创建一个包含多个目录的包,其中包含媒体数据(音频和视频),然后将其作为 AVURLAssets 加载。
由于 AVURLAssets 是使用 URL 创建的,因此我不能使用(据我所知)NSFileWrapper。文档指出 NSFileWrapper 将文件的完整内容存储在内存中,这对于可能高达 1 GB 的视频数据来说似乎不是一个好主意。
我目前正在使用 writeToURL 和 readFromURL 来读取/写入包,但这不能按预期工作,因为 URL 是一个临时目录,如果该目录为空,则整个过程将失败(如果没有任何更改,则会发生这种情况)。
此外,当我下载音频/视频文件时,最好在完全加载后立即将其存储在包中(不仅在自动保存/保存时)。我知道我可以为此使用缓存或应用程序支持文件夹,但我不完全确定卸载应用程序时应用程序支持文件夹会发生什么(最坏的情况是用户的硬盘上有多个 GB 的不必要数据)。该文档指出应用程序不应依赖缓存目录中的文件,但我需要磁盘上某处的媒体文件以进行快速/离线访问。
处理这种情况的正确方法是什么?