将 NSMutableData 转换为 NSURL 用于 ios 中的视频

Posted

技术标签:

【中文标题】将 NSMutableData 转换为 NSURL 用于 ios 中的视频【英文标题】:Convert NSMutableData into NSURL for video in ios 【发布时间】:2014-08-20 11:40:02 【问题描述】:

在接收数据的套接字流中,我能够将NSMutableData 转换为图像并能够保存在照片中但无法将NSMutableData 转换为视频

对于我正在做的图片

UIImage *imagess = [[UIImage alloc]initWithData:received];
//dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
    UIImageWriteToSavedPhotosAlbum(imagess, nil, nil, nil);
); 

有人帮我做同样的视频吗?

【问题讨论】:

此代码在当前状态下无法编译。 @max_ ,我正在后台线程中保存图像 你的代码中的一行没有被注释,如果它保存了我会很惊讶,更不用说编译了。 【参考方案1】:

首先您需要将视频保存为本地文件。

NSData *receivedData;
…
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"movie.mp4"];
[receivedData writeToFile:path atomically:YES]; 

然后您可以使用 UISaveVideoAtPathToSavedPhotosAlbum 函数将视频文件保存到相册。

NSURL movieURL=[NSURL fileURLWithPath:path];

if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(movieURL))
    UISaveVideoAtPathToSavedPhotosAlbum(movieURL, nil, nil, nil);

【讨论】:

我们需要先创建movie.mp4文件,否则会自动创建? UISaveVideoAtPathToSavedPhotosAlbum 函数需要一个文件路径 URL。但在示例中 [receivedData writeToFile:path atomically:YES];函数已经在创建本地文件,所以你应该没问题。 文件保存@cekisakurek 但在设备中找不到?你能建议它的存储位置吗? 如果你 NSLog(@"%@", movieURL);该文件应该在那里。 thanx @cekisakurek :) 它的工作,但你能建议我将它保存在应用程序文档中但可以直接保存到相机胶卷吗?

以上是关于将 NSMutableData 转换为 NSURL 用于 ios 中的视频的主要内容,如果未能解决你的问题,请参考以下文章

将表示图像的 NSMutableData 保存到 iPhone 照片库

无法将 NSString 转换为 NSURL

将文件路径从 NSString 转换为 NSURL

将 NSURL 转换为 NSString

将 NSUrl 转换为 PHAsset iOS 8

将文件路径转换为文件 url[NSUrl]