我正在使用 AVExporterSession 导出 Quicktime 视频并在其上设置元数据,如下所示:
AVMutableMetadataItem *newMetaDataCommentItem = [[AVMutableMetadataItem alloc] init];
[newMetaDataCommentItem setKeySpace:AVMetadataKeySpaceQuickTimeMetadata];
[newMetaDataCommentItem setKey:AVMetadataQuickTimeMetadataKeyComment];
[newMetaDataCommentItem setValue:@"Test metadata value"];
NSMutableArray *metaData = [NSMutableArray array];
[metaData addObject:newMetaDataCommentItem];
exporter = [[AVAssetExportSession alloc] initWithAsset:mutableComposition
presetName:AVAssetExportPresetHighestQuality];
exporter.outputURL=[[SNMovieManager instance] urlForFinalMovie];
exporter.metadata = metaData;
exporter.outputFileType = AVFileTypeQuickTimeMovie;
exporter.shouldOptimizeForNetworkUse = YES;
exporter.videoComposition = video;
然后我将文件 video 导入我的 Mac 并在其上运行 mdls 并查看值已正确设置:
kMDItemComment = "Test metadata value"
我不能做的就是读回那个值。我正在使用以下内容来读取文件。 Assets 是正确的,但元数据属性始终是一个空字典。
[group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
if([[result valueForProperty:@"ALAssetPropertyType"] isEqualToString:@"ALAssetTypeVideo"])
{
ALAssetRepresentation *rep = result.defaultRepresentation;
NSDictionary *metadata = rep.metadata;
[images addObject:(id)rep.fullScreenImage];
}
有谁知道我是否在这里采取了正确的方法,如果没有让我知道阅读此评论的正确方法是什么?
谢谢
西蒙
最佳答案
如果您能提供更多与 PhotoLibrary 保存过程相关的代码库,我将不胜感激。
否则只有一个答案,元数据将返回 nil
如果表示是系统无法口译 .
返回的字典在文件源中的指定位置保存视频的属性。
关于ios - 在 iOS 7 上读取视频元数据 - 始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20903887/