Ich versuche, das Video mit benutzerdefinierten Metadaten zu speichern, die für meine App relevant sind, und versuche, sie wiederherzustellen, wenn der Benutzer dieses Video aus der Bibliothek auswählt. Ich bin mir nicht sicher, ob ich die Metadaten richtig speichern kann, da ich beim Abrufen der Metadaten nichts sehen kann. Ich bin mir auch nicht sicher, ob ich die Metadaten korrekt abrufe. Ich bin neu in iOS, jede Hilfe wird geschätzt. Ich habe viele Threads und Entwicklerbibliotheken durchsucht, aber ich konnte das nicht zum Laufen bringen.Wie können benutzerdefinierte Metadaten zu einer Videodatei in der iOS-Programmierung hinzugefügt und abgerufen werden?
Ich versuche, Metadaten in der RecordingDidFinishToOutputFileURL-Delegatfunktion zu speichern. Das Video wird in der Bibliothek gespeichert.
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);
}];
Ich versuche, das Video in didFinishPickingMediaWithInfo Delegatfunktion zum Abrufen der Metadaten zu überprüfen, aber nicht in der Lage irgendetwas in der completionhandler Funktion
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);
}
}];
Können Sie die Datei auf einem normalen Computer speichern, um die Metadaten dort zu sehen? – Liron
Warum versuchen Sie, Metadaten hinzuzufügen, anstatt einen neuen Ordner in Ihrer Fotobibliothek zu erstellen? So können Sie die für Ihre App relevanten Videos/Fotos speichern und abrufen. – iremk
Nur Unterstützung mov Dateityp? nicht mp4 – crossle