Я пытаюсь определить различные элементы метаданных в видео на iPad. До сих пор я был в состоянии успешно использовать библиотеки AVAsset для поиска файла и генерировать массив AVMetadataItems, используя metadataForFormat:
. В файле были найдены только форматы данных iTunes и Quicktime User. Теперь проблема в том, что у меня есть эта информация, и я не могу определить, что к чему. Я намеревался загрузить словарь с информацией, индексируемой ключом метаданных, но использование свойства key
AVMetadataItem, похоже, не работает правильно, как будто возвращает число (отладчик говорит, что это NSCFNumber). Вот пример кода того, что я делаю:
ALAssetRepresentation *representation = [[valAsset defaultRepresentation] retain];
NSURL *url = [representation url];
AVURLAsset *aAsset = [[AVURLAsset URLAssetWithURL:url options:nil] retain];
metaDataDict = [[NSMutableDictionary dictionary] retain];
NSArray *fmtmetadata = [aAsset metadataForFormat:@"com.apple.itunes"];
for (AVMetadataItem* meta in fmtmetadata)
{
[metaDataDict setObject:[meta stringValue]
forKey:[meta key]];
NSLog(@"metadata: key = %@", [meta key]);
}
Это приводит к следующему выводу в консоли отладчика:
metadata: key = -1452383891
metadata: key = -1452841618
metadata: key = 1684370275
metadata: key = 1818518899
metadata: key = 1937009003
metadata: key = -1453101708
Кстати, изменив строку NSLog следующим образом:
NSLog(@"metadata: %@", meta);
дает нам вывод как:
metadata: keySpace=itsk, key=desc, commonKey=(null), locale=(null), value=This is the Description of the Video, time={INVALID}, duration={INVALID}, extras={
dataType = 1;
}
Любая помощь очень ценится!