Вариант использования выглядит так: видео записывается и сохраняется во временном месте с использованием AVCaptureFileOutput. После завершения записи некоторые метаданные должны быть добавлены в это видео и сохранены с новым именем файла в новом месте.AVAssetExportSession добавляет метаданные после окончания записи
Записывающая часть работает с сохранением файла во временном месте. Теперь мне нужно переименовать его, добавить метаданные и снова сохранить их в другом месте.
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);
}];
Как когда-либо с таким подходом я получаю следующее сообщение об ошибке:
Экспортируется [/// вар/мобильный/Applications/7F9BC121-6F58-436E-8DBE-33D8BC1A4D79/Документы/Temp/конечный .mov] Ошибка домена = AVFoundationErrorDomain Code = -11800 «Операция не может быть выполнена» UserInfo = 0x1555f440 {NSLocalizedDescription = Операция не может быть выполнена, NSUnderlyingError = 0x1555c7a0 "Операция не может быть выполнена. (Ошибка OSStatus -12780.) ", NSLocalizedFailureReason = Произошла неизвестная ошибка (-12780)}
Может ли кто-нибудь сказать мне, что я делаю неправильно здесь? Или есть лучший способ сделать это?
хотя я понял, что я делаю неправильно, я все же хотел бы услышать, если есть более оптимизированный способ сделай это. – NSRover