1

需要您对我遇到的方案提出建议/建议。我正在开发一个拥有12-15个视频的iPhone应用程序。用户可以下载任何视频,然后在iPhone上播放。问题是我正在将视频写入文档目录。它适用于小视频(〜50 MB),但当选择较大的视频时(约250 MB),由于内存警告不足,应用程序会崩溃。iPhone将大尺寸视频下载到文档目录(〜300 mb)


我知道应用程序由于内存占用增加而崩溃。有没有其他方法可以更有效地(大块地)下载大文件,而内存利用率更低?否则,我正在考虑仅为小视频提供下载选项,并且仅为大尺寸视频提供流式播放选项。

+0

显示您用于下载和写入文件的代码。 – rmaddy

+0

您是否正在使用WiFi – meda

+1

下载如果您将下载缓冲区保存在“NSData”对象中,则应该将其写入文件中,并保留新数据。 –

回答

2

1)使用异步NSUrlConnection对象下载视频。

2)创建一个文件来预先保存视频,获取文件描述符,并在打开的文件上设置F_NOCACHE标志,以便不占用磁盘缓存中的内存。 3)当您在委托调用中获得小数据块作为NSData对象时,将它们追加到打开的文件中。

4)当下载完成时,关闭文件。

您可能想验证设备是否有足够的空间来接受下载;有关于如何做到这一点的帖子。