【问题标题】:Detecting iTunes playlist folders on a device检测设备上的 iTunes 播放列表文件夹
【发布时间】:2012-07-03 11:05:07
【问题描述】:

通过 iTunes,您可以创建任意嵌套深度的播放列表文件夹。当您将这些播放列表文件夹复制到您的 iOS 设备时,iTunes 能够检测到它们是文件夹,并允许您深入到最终获取歌曲的位置。知道他们是怎么做到的吗?这几天我一直在努力解决这个问题。

当我查询已知文件夹的特定 persistentID 时,我能看到的唯一与包含歌曲的播放列表不同的是:

  • playlist.mediaTypes = 4359(这是 音乐|播客|有声读物|电影|视频iTunes),而普通的播放列表 不会混合音频类型和视频类型
  • 财产价值 MPMediaPlaylistPropertyPlaylistAttributes 包含 2 (MPMediaPlaylistAttributeSmart),而普通播放列表包含 0
  • 项目计数将等于项目的总数 设备

但是,就是这样!我看不到任何方法可以访问子文件夹。或者,当询问文件夹中包含的播放列表或子文件夹时,我看不到任何将其与父级关联的方法。

Apple 在 iTunes 中做到了,所以一定有办法。他们是否使用了一些私有 API?

【问题讨论】:

    标签: objective-c ios mpmediaquery


    【解决方案1】:

    以下未记录的属性可以使用MPMediaPlaylistvalueForProperty 方法为您提供所需的内容:@"isFolder"@"parentPersistentID"

    请注意,这些没有记录,也不会出现在任何头文件中,因此根据 Apple 的应用程序提交规则,使用它们可能会被视为使用“私有 API”。

    我已向 Apple 提交了一份错误报告,要求在头文件中提供这些内容,并要求澄清它们是否被视为私有 API 的一部分。

    【讨论】:

    • 在 iOS 8 GM 上,我注意到播放列表文件夹不再从查询中出现。我已经尝试创建一个请求确切的播放列表持久 ID 的谓词,但仍然没有运气。关于如何在 iOS 8 上检索播放列表文件夹的任何想法?
    • 快 9 年过去了,parentPersistentID 似乎直到现在还没有公开......签名。顺便说一句,对您的错误报告有任何回复吗?
    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 2018-08-19
    • 2013-03-02
    • 2011-06-18
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多