从 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 获取图像文件名