用例如下:使用AVCaptureFileOutput记录视频并将其保存在临时位置。录制完成后,一些元数据将添加到此视频中,并在新位置以新文件名保存。
录制部分正在处理存储在临时位置的文件。现在我必须重命名它,添加元数据并将其再次保存到其他位置。
1)我可以编辑:
中的元数据- (void)captureOutput:(AVCaptureFileOutput *)captureOutput didFinishRecordingToOutputFileAtURL:(NSURL *)outputFileURL fromConnections:(NSArray *)connections error:(NSError *)error;
delagate方法?
2)我的第二种方法是使用AVAssetExportSession来执行此操作。
AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetMediumQuality];
exportSession.outputFileType = AVFileTypeQuickTimeMovie;
exportSession.metadata = NEW ARRAY OF METADATA;
NSString* outputPath = [[PLFileManager sharedFileManager] pathForAsset:_newAsset];
NSURL* url = [NSURL URLWithString:outputPath];
exportSession.outputURL = url;
[[NSFileManager defaultManager] removeItemAtURL:url error:nil];
[exportSession exportAsynchronouslyWithCompletionHandler:^(void){
NSLog(@"Exported to [%@] %@", exportSession.outputURL, exportSession.error);
}];
对于这种方法,我收到以下错误:
导出到[///var/mobile/Applications/7F9BC121-6F58-436E-8DBE-33D8BC1A4D79/Documents/Temp/final.mov]错误域= AVFoundationErrorDomain代码= -11800“操作无法完成”UserInfo = 0x1555f440 {NSLocalizedDescription =操作无法完成,NSUnderlyingError = 0x1555c7a0“操作无法完成。(OSStatus error -12780。)”,NSLocalizedFailureReason =发生未知错误(-12780)}
有人能告诉我这里做错了什么吗?或者有更好的方法吗?
答案 0 :(得分:0)
好的我弄清楚我做错了什么。而不是:
NSURL* url = [NSURL URLWithString:outputPath];
我不得不使用:
NSURL* outputUrl = [NSURL fileURLWithPath:outputPath];