【问题标题】:Best way to save video in iOS Application for offline viewing在 iOS 应用程序中保存视频以供离线观看的最佳方式
【发布时间】:2014-11-12 05:30:19
【问题描述】:
我很困惑“存储视频的最佳方式是什么?” 从服务器本地下载。
我有两个版本的同一个应用程序,即在线和其他离线版本。
对于离线模式,我想在本地下载所有视频,以便将来离线观看。
我知道有两种存储视频的方式:
可行的方法是将其存储在应用程序的文档目录中,并将相应的视频文件名保存在 sqlite 数据库中。但是,大约有 200 多个视频!
我只是担心它可能会造成内存问题,给我的应用程序内存警告并使其崩溃。
将其以NSData 格式存储在 sqlite 数据库中,但它会使数据库变得庞大,我认为这是不可行的,因为 sqlite db 是轻量级的。
还有其他方法可以完成任务吗? (并且根据要求,视频不应保存在设备上的图库中)。
请帮帮我!
谢谢!
【问题讨论】:
标签:
ios
iphone
xcode
ipad
【解决方案1】:
据我所知,文档目录是您唯一的选择。它不应该影响内存,但是请记住,如果您的应用被删除,该目录也会被删除。
我最近构建了一个依赖于将视频保存到 Document 目录的应用程序,我们没有遇到任何问题。
我会避免将大型资产存储在数据库中。您不会从中获得任何好处,如果删除该应用,这些视频仍然会丢失。
【解决方案2】:
您可以使用...在应用程序环境目录的任何位置保存任何类型的文件
[[NSFileManager defaultManager] moveItemAtPath:[/*Your current file path*/] toPath:/*Your destination path*/ error:/* &errorObj */];
或
[[NSFileManager defaultManager] copyItemAtPath:[/*Your current file path*/] toPath:/*Your destination path*/ error:/* &errorObj */];
对于移动 200 多个文件...您可以使用命名约定,从中可以使用任何类型的循环来处理它。
注意:
1.对于任何类型的大文件,我总是使用这种方式,而不是保存在任何类型的数据库中 。
2.下载文件时应始终使用“移动”操作。