在我陷入困境的情景中需要您的建议/建议。我正在开发一个拥有12-15个视频的iPhone应用程序。用户可以下载任何视频,然后在他的iPhone上播放。问题是我正在将视频写入文档目录。它适用于小型视频(约50 mb),但是当选择较大的视频(约250 mb)时,应用程序会因内存不足警告而崩溃。
我知道应用程序因内存占用增加而崩溃。有没有其他方法可以更有效地(以块为单位)下载大文件而内存利用率更低?否则我想为小视频提供下载选项,而只为大尺寸视频提供流媒体选项。
答案 0 :(得分:2)
1)使用异步NSUrlConnection对象下载视频。
2)创建一个文件以预先保存视频,获取文件描述符,并在打开的文件上设置F_NOCACHE标志,以便不占用磁盘缓存中的内存。
3)当您在委托调用中获取小块数据作为NSData对象时,将它们附加到打开的文件中。
4)下载完成后,关闭文件。
您可能需要验证设备是否有足够的空间来接受下载;这里有关于如何做到这一点的帖子。