Sto provando a salvare video con metadati personalizzati pertinenti per la mia app e cerco di recuperarli quando l'utente seleziona quel video dalla libreria. Non sono sicuro di salvare i metadati, dato che non riesco a vedere nulla quando provo a recuperare i metadati. Non sono nemmeno sicuro se sto recuperando i metadati correttamente. Sono nuovo di iOS, ogni aiuto è apprezzato. Ho cercato molti thread e la libreria degli sviluppatori ma non ho potuto farlo funzionare.Come aggiungere e recuperare metadati personalizzati in un file video nella programmazione iOS?
Sto tentando di salvare i metadati nella funzione di delega recordingDidFinishToOutputFileURL. Il video viene salvato nella libreria.
NSMutableArray *metadata = [NSMutableArray array];
AVMutableMetadataItem *mi = [AVMutableMetadataItem metadataItem];
mi.key = AVMetadataCommonKeyTitle;
mi.keySpace = AVMetadataKeySpaceCommon;
mi.value = @"title";
[metadata addObject:mi];
NSLog(@"Output saving:%@",outputFileURL);
AVAsset *video = [AVAsset assetWithURL:outputFileURL];
AVAssetExportSession *exportSession = [AVAssetExportSession exportSessionWithAsset:video presetName:AVAssetExportPresetPassthrough];
exportSession.shouldOptimizeForNetworkUse = YES;
exportSession.outputFileType = AVFileTypeMPEG4;
exportSession.metadata = metadata;
exportSession.outputURL = outputFileURL;
[exportSession exportAsynchronouslyWithCompletionHandler:^{
NSLog(@"done processing video!");
UISaveVideoAtPathToSavedPhotosAlbum(outputFileURL.path, self, @selector(video:didFinishSavingWithError: contextInfo:), nil);
}];
sto cercando di recuperare il video in funzione di delegato didFinishPickingMediaWithInfo per controllare i metadati, ma non in grado di vedere nulla nella funzione completionhandler
if ([mediaType isEqualToString:(NSString *)kUTTypeMovie]) {
video_selected = TRUE;
NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
NSLog(@"video has %@", videoURL.path);
AVAsset *videoAsset = [AVAsset assetWithURL:videoURL];
NSLog(@"Loading metadata...");
NSArray *keys = [[NSArray alloc] initWithObjects:@"commonMetadata", nil];
NSMutableArray *metadata = [[NSMutableArray alloc] init];
[videoAsset loadValuesAsynchronouslyForKeys:keys completionHandler:^{
[metadata removeAllObjects];
for (NSString *format in [videoAsset availableMetadataFormats])
{
[metadata addObjectsFromArray:[videoAsset metadataForFormat:format]];
NSLog(@"Printing metadata-%@",metadata);
}
}];
Sei in grado di salvare il file su un normale computer per vedere i metadati lì? – Liron
perché stai provando ad aggiungere metadati invece di creare una nuova cartella nella tua libreria di foto? in modo che tu possa salvare e recuperare i video/le foto rilevanti per la tua app? – iremk
Supporta solo il tipo di file mov? non mp4 – crossle