从 UIImagePickerController 保存视频

Posted

技术标签:

【中文标题】从 UIImagePickerController 保存视频【英文标题】:Saving video from UIImagePickerController 【发布时间】:2009-11-14 07:42:28 【问题描述】:

在我的应用程序中,用户可以使用 UIImagePickerController 录制视频,我需要将其保存到磁盘以供以后使用。我已经从信息字典中获取了路径,并将其保存到我的文档目录中,但我遇到的问题是字典中传递的 URL 就是这样 - 一个 URL 而不是文件路径.当我使用 absoluteString 将其转换为字符串并将其作为源路径传递给我的文件管理器时,它会说找不到源文件。

旧路径:file://localhost/private/var/mobile/Applications/77B4D2B8-DE12-4643-82F0-2ECC948E4DBC/tmp/capture/capturedvideo.MOV

新路径:/var/mobile/Applications/77B4D2B8-DE12-4643-82F0-2ECC948E4DBC/Documents/video1.mov

必须有一种简单的方法将我的 URL 转换为文件管理器可以处理的内容。我猜我不能把所有的视频都留在 tmp 目录中,如果我想保留它们,它们必须保存到文档目录中吧?

另外,这并不相关,但我如何才能获得该视频的缩略图以显示在表格视图中?

【问题讨论】:

【参考方案1】:

必须有一种简单的方法将我的 URL 转换为文件管理器可以处理的内容。

你是对的 - 一个简单的方法,它只是埋在文档中:

NSString *myPath = [myUrl path];

来自path 方法的文档:

返回值 URL 的路径。如果接收方不符合 RFC 1808,则返回 nil。 如果 isFileURL 返回 YES,则返回值适合输入到 NSFileManager 或 NSPathUtilities。 如果路径有尾部斜杠,则被剥离。

【讨论】:

【参考方案2】:
NSData *imageData = [NSData dataWithContentsOfURL:[info objectForKey:@"UIImagePickerControllerMediaURL"]];


NSString *tempPath = [NSString stringWithFormat:@"%@/Documents/%@.mp4",NSHomeDirectory(),dateStr];

  [imageData writeToFile:tempPath atomically:NO];

【讨论】:

以上是关于从 UIImagePickerController 保存视频的主要内容,如果未能解决你的问题,请参考以下文章

从 UITabBarController 驱动 UIImagePickerController

从 UIImagePickerController 保存视频

UIImagePickerController 从 UICollectionViewCell 内的 UIImageView 呈现

如何从 UIImagePickerController 获取图像文件名

从 UIImagePickerController 获取图像位置

从 UIImagePickerController 传递图像数据以进行后台处理