阅读使用Objective C的MP3信息(Reading MP3 information usin

2019-06-28 07:15发布

我有mp3存储在iPhone上的文件,我在我的应用程序应该能够读取ID3信息,在几秒钟内,艺术家即长度等有谁知道如何做到这一点还是在Objective-C使用什么库?

你的思想大加赞赏。

Answer 1:

可以读取ID3信息检索kAudioFilePropertyInfoDictionary使用的音频文件的属性AudioFileGetProperty的AudioToolbox框架的功能。

详细说明,请iphonedevbook.com

编辑:原始链接现在已经下降。 InformIT的有一些类似的示例代码,但它不是完整的。



Answer 2:

看看媒体播放器框架:

  • 指南
  • 参考
  • 所有文件

这就要求有问题的MP3在手机上了iPod库的一部分。

例如,确定手机(包括电影,播客等)上的每个媒体文件的名称:

MPMediaQuery *everything = [[MPMediaQuery alloc] init];

NSArray *itemsFromGenericQuery = [everything items];
for (MPMediaItem *item in itemsFromGenericQuery) {
    NSString *itemTitle = [item valueForProperty:MPMediaItemPropertyTitle];
    // ...
}

看来,以下属性:

  • MPMediaItemPropertyMediaType
  • MPMediaItemPropertyTitle
  • MPMediaItemPropertyAlbumTitle
  • MPMediaItemPropertyArtist
  • MPMediaItemPropertyAlbumArtist
  • MPMediaItemPropertyGenre
  • MPMediaItemPropertyComposer
  • MPMediaItemPropertyPlaybackDuration
  • MPMediaItemPropertyAlbumTrackNumber
  • MPMediaItemPropertyAlbumTrackCount
  • MPMediaItemPropertyDiscNumber
  • MPMediaItemPropertyDiscCount
  • MPMediaItemPropertyArtwork
  • MPMediaItemPropertyLyrics
  • MPMediaItemPropertyIsCompilation

不通过媒体播放器框架打算这样做会有些困难,并且需要一个外部框架。



Answer 3:

不会有太多的ID3解析库在那里,不GPL协议。 有对Objective-C的框架,这很可能进行修改,以在iPhone上工作时,静态链接的,但它是LGPL。 为了满足LGPL条款与静态链接的二进制文件,你必须提供足够的人可以用自己的版本库,这是很难(但并非不可能)的iPhone应用程序重新链接它的中介组件。 当然,因为我还没有在我不得不这样做,我实际上还没有与律师商量过了,由于我不是一个你不应该把它看作权威的位置。

如果你不喜欢咨询律师最好的办法是使用更宽松许可的C库像libID3和包装,在一些目标C类。 我还建议干脆直接包括代码,而不是处理所有静态库的构建及链接的问题,但是这仅仅是一个个人风格的东西。



文章来源: Reading MP3 information using objective c