MobileVLCKit和VLCKit处理元数据

NDIS herman 267浏览 0评论

在VLCKit中,您播放的每个项目都是VLCMedia对象。对于典型的用例,可以使用包含路径的NSURL或NSString创建它。

我们区分两种元数据:描述媒体的技术信息,如编解码器,比特率,视频大小和用户可见/提供的信息,如艺术家,出版商名称,专辑名称。

让我们从技术信息开始,可以使用单个API调用从任何媒体对象中检索技术信息:

@property (NS_NONATOMIC_IOSONLY, readonly, copy) NSArray *tracksInformation;

这为您提供了一个包含与媒体包含音轨一样多的字典的阵列,无论是视频,音频还是子图片(字幕,图文电视)。轨道类型由VLCMediaTracksInformationType定义所有曲目将包含有关各自编解码器,比特率和编码细节的信息。根据音轨类型,将设置视频尺寸,音频通道编号或文本编码的键以及语言的可选键。
检索此属性可能会非常昂贵,尤其是如果您的媒体远程存储,因为VLCKit将同步分析源以提供此信息。因此,我们建议您缓存此数据,因为它在VLCMedia对象的生命周期中可能不会更改。
注意:对于编解码器信息,您将收到一个整数,该整数是编解码器名称的原始FOURCC表示。VLCKit 2.2以后的发行版将包含一种便利方法,将其转换为最终用户可读的字符串。

在移动设备上,如果给定设备足够强大以解码给定视频文件,则可能会遇到问题。为此,VLCMedia包含isMediaSizeSuitableForDevice属性,它将提供合理的猜测。请注意,该属性在OS X上始终为真。

那么,关于媒体内容的非技术性信息呢?为了检索它们,VLCKit需要解析源代码。这可以同步和异步完成,具体取决于应用程序的需求。我们通常建议您使用异步方式,以免阻塞任何线程的执行。VLCMedia包含一个可选的委托协议,它允许您在每次进一步的信息变得可用时以及在解析完成时接收通知,从而跟踪元数据处理。
VLCKit可以提供多达17种不同的元数据密钥,并在后续版本中提供更多内容。尽管它允许一个一个地读取它们,但我们建议您使用以下命令获取完整的字典:

@property (nonatomic, readonly, copy) NSDictionary * metaDictionary;

如果您有对媒体源的写入权限,则还可以为各个键设置值并将其保存到磁盘。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847,QQ3群:187424846。QQ群进群密码:xttblog,想加微信群的朋友,可以微信搜索:xmtxtt,备注:“xttblog”,添加助理微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » MobileVLCKit和VLCKit处理元数据