如何获取有关媒体文件的特定信息(持续时间,比特率,FPS等)

时间:2010-01-29 03:15:06

标签: objective-c cocoa multimedia spotlight

使用Finder时,我需要获得与“获取信息”相同的信息;更具体地说,我需要“更多信息”部分中显示的相同信息,如持续时间,比特率,维度,编解码器,音频通道等。

要获得大小,类型等基本信息,我有:

// Getting the file's attributes
NSError *error;
NSFileManager *fm = [NSFileManager defaultManager];
NSDictionary *fileInfo = [fm attributesOfItemAtPath:fileName error:&error];

是否有任何本地Cocoa库可以获取此信息?

2 个答案:

答案 0 :(得分:4)

  

我需要获得与使用Finder时获取“获取信息”相同的信息,更具体地说,我需要“更多信息”部分中显示的相同信息,如持续时间,比特率,维度,编解码器,音频频道等。

与Finder一样:Spotlight。 (不要让路径中的“Carbon”这个词吓跑你:它是Core Services的一部分,所以它可以64位获得。)只需为你感兴趣的文件实例化一个MDItem。

另一种方法是使用Foundation自己的框架包装器(包含在该页面上),但是你需要做一个NSMetadataQuery来搜索kMDItemPath是你文件路径的项目。很多不必要的麻烦 - 直接使用MDItem会让你更快。

一个很好的奖励是,这不仅适用于视频和音频文件。图像文件还包含Finder和您的应用可以显示的元数据。

答案 1 :(得分:0)

创建一个QTMovie实例,然后使用-movieAttributes消息查询其属性。