【问题标题】:How to get song information from iTunes?如何从 iTunes 中获取歌曲信息?
【发布时间】:2011-07-30 23:30:54
【问题描述】:

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

【问题讨论】:

  • 您可以在 Cocoa 应用程序中通过 OSA (AppleScript) 进行通信。
  • Objective-C 没有 API。你是说可可还是碳?

标签: objective-c cocoa macos itunes


【解决方案1】:

answer to my question

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

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

【讨论】:

  • 谢谢,我试试。事实上,我所说的 Objective-c 是指语言,以区别于 AppleScript。
【解决方案2】:

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

但碰巧 iTunes 会在曲目更改时发布分布式通知,因此您可以收听这些通知并以这种方式获取当前播放的歌曲信息。

Objective-C Mac OS X Distributed notifications iTunes

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2016-06-28
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      相关资源
      最近更新 更多