【问题标题】:Is it possible to get the iTunes Store ID for an MPMediaItem?是否可以获得 MPMediaItem 的 iTunes Store ID?
【发布时间】:2025-12-06 04:55:01
【问题描述】:

有没有办法从MPMediaItem 获取歌曲的 iTunes Store ID?

我正在尝试提取用户的播放列表,将它们传输到另一台设备,然后使用 MPMusicPlayerController 的setQueueWithStoreIDs 播放歌曲。这需要将MPMediaItems 映射到 iTunes Store 中的内容,这是 iTunes Match 的用途,它包含在 Apple Music 订阅中。

理论上,与 iTunes 内容匹配的歌曲应该可以做到这一点。但是,我在MPMediaItemMPMediaPlayer 框架中支持此功能的任何其他类上找不到属性或valueForKeypersistentId 属性集是本地数据库密钥,不绑定到项目的 iTunes 内容。对于同一用户,它们在不同设备上似乎也不相同。

【问题讨论】:

    标签: ios ios10 itunes-sdk apple-music


    【解决方案1】:

    现在可以在 iOS 10.3+ 中使用 MPMediaItem 上的 playbackStoreID 实例属性。

    https://developer.apple.com/documentation/mediaplayer/mpmediaitem/2813404-playbackstoreid

    【讨论】:

    • 我猜因为它是新的,所以playbackStoreID 并不总是存在。如果没有找到playbackStoreID,它有时会返回“0”。我认为我们仍然需要使用 iTunes 搜索 API 来获得更稳定的解决方案。
    • 当歌曲未被 iTunes Match 匹配时,我相信playbackStoreID 会返回 0
    • 当歌曲在 Apple Music 上可用但使用 iTunes Store 购买时,playbackStoreID 将返回 0...
    最近更新 更多