我有mp3
存储在iPhone上的文件,我在我的应用程序应该能够读取ID3
信息,在几秒钟内,艺术家即长度等有谁知道如何做到这一点还是在Objective-C使用什么库?
你的思想大加赞赏。
我有mp3
存储在iPhone上的文件,我在我的应用程序应该能够读取ID3
信息,在几秒钟内,艺术家即长度等有谁知道如何做到这一点还是在Objective-C使用什么库?
你的思想大加赞赏。
可以读取ID3信息检索kAudioFilePropertyInfoDictionary
使用的音频文件的属性AudioFileGetProperty
的AudioToolbox框架的功能。
详细说明,请iphonedevbook.com
编辑:原始链接现在已经下降。 InformIT的有一些类似的示例代码,但它不是完整的。
看看媒体播放器框架:
这就要求有问题的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
不通过媒体播放器框架打算这样做会有些困难,并且需要一个外部框架。
不会有太多的ID3解析库在那里,不GPL协议。 有对Objective-C的框架,这很可能进行修改,以在iPhone上工作时,静态链接的,但它是LGPL。 为了满足LGPL条款与静态链接的二进制文件,你必须提供足够的人可以用自己的版本库,这是很难(但并非不可能)的iPhone应用程序重新链接它的中介组件。 当然,因为我还没有在我不得不这样做,我实际上还没有与律师商量过了,由于我不是一个你不应该把它看作权威的位置。
如果你不喜欢咨询律师最好的办法是使用更宽松许可的C库像libID3和包装,在一些目标C类。 我还建议干脆直接包括代码,而不是处理所有静态库的构建及链接的问题,但是这仅仅是一个个人风格的东西。