【问题标题】:Fetch iTunes album artwork without iTunes running在没有运行 iTunes 的情况下获取 iTunes 专辑插图
【发布时间】:2010-11-28 19:34:46
【问题描述】:

在 Cocoa 应用程序中,我正在寻找一种解决方案来从 iTunes 中检索专辑插图,而无需启动 iTunes 本身并在后台运行。

通常且可能唯一的解决方案 Scripting Bridge 和固有的 AppleScript 将在执行任何命令之前启动 iTunes。

专辑封面是唯一无法通过解析iTunes Library.xml获得的信息。对于给定的曲目,iTunes 以下列方式混淆艺术作品的存储:~/{Library Path}/Album Artwork/Cache/D989408F65D05F99/04/13/04/D989408F65D05F99-EB5B7A9086F4B4D4.itc

有人知道无需启动 iTunes 即可获得专辑封面的技术吗?我总是可以走不同的路线,比如使用亚马逊的数据服务,但我更喜欢本地基于 iTunes 的解决方案。

【问题讨论】:

    标签: cocoa itunes


    【解决方案1】:

    ITLibrary 框架有一个函数 (link):

    (ITLibArtwork *)artworkForMediaFile:(NSURL *)mediaFileURL;
    

    您将需要您想要获得艺术品的轨道的位置。

    如果您有 PersistentID,那么您必须查询库以获取 ITMediaItem,然后访问其位置属性。

    或者,如果您已经拥有ITMediaItem,现在您可以通过checking the artworkAvailable property获得它的第一张作品。

    如果是,则获取其艺术品属性,即ITLibArtwork 类。有关该课程的更多信息,请参阅here

    【讨论】:

      【解决方案2】:

      iTunes 11+ (macOS 10.13+) 引入了具有此功能的 iTunes Library Framework,您无需再解析 iTunes Library.xml 或读取曲目的存储文件夹

      【讨论】:

        【解决方案3】:

        文件名是库 ID (D989408F65D05F99) 和曲目 ID (EB5B7A9086F4B4D4) 的组合。目录结构来自库ID和曲目ID的后三位转换为十进制,即4D4变为04、13、04。

        .itc 文件似乎具有 RIFF/chunked 类型结构。 here文件的结构有点问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-07-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多