如何从iTunes获取歌曲信息?

时间:2011-04-06 16:00:49

标签: objective-c cocoa macos itunes

我正在为Mac OS X开发一个应用程序来显示iTunes正在播放的歌曲的歌词。我做了一些搜索,发现只使用AppleScript实现它的方式。是否有Objective-C的API,我可以用来从iTunes获取有关该歌曲的信息?我想知道Bowtie,CoverSutra和Last.fm是如何做到的。

3 个答案:

答案 0 :(得分:4)

在10.9中,您可以对iTunes 11使用iTunes Library Framework(/Library/Frameworks/iTunesLibrary.framework)。

#import <iTunesLibrary/ITLibrary.h>

NSError *error = nil;
ITLibrary *library = [ITLibrary libraryWithAPIVersion:@"1.0" error:&error];
if (library)
{
        NSArray *playlists = library.allPlaylists; //  <- NSArray of ITLibPlaylist
        NSArray *tracks = library.allMediaItems; //  <- NSArray of ITLibMediaItem
}

答案 1 :(得分:1)

请参阅answer to my question

  

使用脚本桥询问iTunes。 iTunes甚至是the docs使用的例子。

一开始可能有点棘手,但与Cocoa一样:在你完成一次之后很容易。

答案 2 :(得分:1)

除了AppleScript界面​​之外,我不知道Apple提供的API。

但是,只要轨道发生变化,iTunes就会发布分布式通知,因此您可以通过这种方式收听并收听当前正在播放的歌曲信息。

请参阅Objective-C Mac OS X Distributed notifications iTunes

我从未见过这些通知的官方文档,因此我不知道您是否可以指望他们将来工作,但他们在过去十年中一直在努力。