如何从 iTunes 获取歌曲信息?

发布于 2024-10-30 22:49:25 字数 168 浏览 1 评论 0原文

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

I'm developing an app for Mac OS X to display lyric of the song iTunes is playing. I've done some searches and found only the way using AppleScript to realize it. Is there an API for Objective-C that I can use to fetch information about the song from iTunes? I want to know how Bowtie, CoverSutra and Last.fm did it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

满身野味 2024-11-06 22:49:25

在 10.9 中,您可以使用 iTunes Library 框架 (/Library/ Frameworks/iTunesLibrary.framework) 适用于 iTunes 11。

#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
}

In 10.9 you can use iTunes Library Framework (/Library/Frameworks/iTunesLibrary.framework) for iTunes 11.

#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
}
久光 2024-11-06 22:49:25

请参阅我的问题的答案

使用脚本桥询问 iTunes。 iTunes 甚至是文档使用的示例。

一开始可能会有点棘手,但与 Cocoa 一样:做过一次后就很容易了。

See the answer to my question:

Use the Scripting Bridge to ask iTunes. iTunes is even the example that the docs use.

It can be a bit tricky in the beginning, but as always with Cocoa: it's easy after you've done it once.

春花秋月 2024-11-06 22:49:25

据我所知,除了 AppleScript 接口之外,没有 Apple 提供的 API。

但碰巧的是,只要曲目发生变化,iTunes 就会发布分布式通知,这样您就可以收听这些通知并以这种方式获取当前播放的歌曲信息。

请参阅 Objective-C Mac OS X 分布式通知 iTunes

I'我从未见过这些通知的任何官方文档,所以我不知道您是否可以指望它们在未来发挥作用,但它们在过去十年中一直有效。

There's no Apple-supplied API that I know of, other than the AppleScript interface.

But it just so happens that iTunes posts distributed notifications whenever the track changes, so you can listen for those and get the currently playing song info that way.

See Objective-C Mac OS X Distributed notifications iTunes

I've never seen any official documentation of these notifications so I don't know if you can count on them working in the future, but they've worked for like the past decade.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文