在Cocoa中使用TagLib获取歌曲ID3信息

 

TagLib是KDE开源项目的一个很有用的C++函数库,可以用于读取各种格式的歌曲ID3信息,诸如歌名、歌手、专辑等信息。

1.5版的TagLib支持MacOS,我们可以在Cocoa中直接使用TagLib来获取MP3歌曲的ID3信息。上图就是使用TagLib获取的歌曲信息,没有使用iTunes。

 

TagLib的功能强大,用法很简单,只需要在工程中加入TagLib.framework,同时在需要使用TagLib的.h文件中加入如下引用:

 

#import "TagLib/taglib.h"

#import "TagLib/tag.h"

#import "TagLib/fileref.h"

 

假设你的程序打开文件的回调方法叫做- (void) acceptFilenameDrag:(NSString *) filename 获取ID3信息的方法如下所示:

 

 

TagLib::FileRef f( [filename UTF8String]);

TagLib::Tag *mytag=f.tag();

TagLib::AudioProperties *aproperties=f.audioProperties();

 

获取歌曲名称:

 

 

mytag->title()

 

获取歌手名称:

 

 

mytag->artist()

 

获取专辑名称:

 

 

mytag->album()

 

获取歌曲码流(kbps)

 

 

aproperties->bitrate()

 

上面获取到的名称都是TagLib::String的形式,如果你希望转换为NSString,需要这样做:

 

nsTitle=[NSString stringWithCString:title.toCString(true) encoding:NSUTF8StringEncoding];

 

这样就可以把TagLib::String转换为NSString了。

 

以上介绍的仅仅是TagLib最简单的用法,TagLib还提供了很多强大的功能,你可以阅读TagLib的文档以找到更多有用的功能来帮助你。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值