加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 19:59:52 所属栏目:百科 来源:网络整理
导读:我试图在iPad上识别视频上的不同元数据项.到目前为止,我能够成功使用AVAsset库来查找文件,并使用metadataForFormat:生成一个AVMetadataItems数组.仅在文件中找到iTunes和Quicktime用户数据格式.现在的问题是我有这些信息,我无法确定是什么.我打算用元数据键
我试图在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 = -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;
}

任何帮助是极大的赞赏!

解决方法

看起来这些键是编码的ID3标签:

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

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

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

等等

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读