iphone – 在iOS中为AVAsset检索AVMetadataItem上的密钥名称

iphone – 在iOS中为AVAsset检索AVMetadataItem上的密钥名称,第1张

概述我试图在iPad上识别视频上的不同元数据项.到目前为止,我能够成功使用AVAsset库来查找文件,并使用metadataForFormat:生成一个AVMetadataItems数组.仅在文件中找到iTunes和Quicktime用户数据格式.现在的问题是我有这些信息,我无法确定是什么.我打算用元数据键加载带有信息的字典,但是使用AVMetadataItem的key属性似乎不能正常工作,就像返回一 我试图在iPad上识别视频上的不同元数据项.到目前为止,我能够成功使用AVAsset库来查找文件,并使用MetadataForFormat:生成一个AVMetadataItems数组.仅在文件中找到iTunes和Quicktime用户数据格式.现在的问题是我有这些信息,我无法确定是什么.我打算用元数据键加载带有信息的字典,但是使用AVMetadataItem的key属性似乎不能正常工作,就像返回一个数字一样(调试器说它是一个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 = -1452383891Metadata: key = -1452841618Metadata: key = 1684370275Metadata: key = 1818518899Metadata: key = 1937009003Metadata: 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;}

任何帮助是极大的赞赏!

解决方法 看起来这些键是编码的ID3标签:

1684370275 = 0x64657363 = {‘d’,’e’,’s’,’c’}

1818518899 = 0x6C646573 = {‘l’,’d’,’s’}

1937009003 = 0x7374696B = {‘s’,’t’,’i’,’k’}

等等

总结

以上是内存溢出为你收集整理的iphone – 在iOS中为AVAsset检索AVMetadataItem上的密钥名称全部内容,希望文章能够帮你解决iphone – 在iOS中为AVAsset检索AVMetadataItem上的密钥名称所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1060413.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存