我有一个关于亚马逊S3下载50MB以上的大文件大小相关的项目。它没有错误地停止,我将文件分块到较小的内存中,因为它的数据文件很大,并同时下载它。当我以正确的顺序将块数据附加到单个NSMutableData中时,视频将不会播放。你对这个相关的话题有什么想法吗?
请帮帮我我整个星期都在做这个项目T_T..
发布于 2013-05-10 17:05:20
您不应该只使用RAM内存来管理这么多的数据。
你宁愿使用辅助内存(也就是here ),当你下载完文件后,正常播放它。如果您确定用户不再需要它,只需在播放后立即将其删除。
编辑
或者,您也可以直接使用指向该URL的MPMoviePlayerController。
发布于 2013-05-10 20:37:22
您需要做的是首先创建一个大小合适的文件。每个下载器对象必须知道文件中的偏移量以放置数据,这些偏移量应该在出现时写入,而不是存储在可变数据对象中。因此,这将大大降低此操作的内存占用。
还有第二个组件:您必须设置打开文件的F_NOCACHE标志,以便iOS不会将文件写入保留在其缓存中。
有了这两点,它应该可以很好地工作。在开发过程中也要使用大量的断言,这样你就可以在出现故障时尽快知道--这样你就可以纠正任何问题了。
https://stackoverflow.com/questions/16477956
复制相似问题