3

如果我在美国,我想播放两门电影俱乐部的歌曲“Sun”,我会使用 ID 544390857。我可以在(例如)中执行此操作,systemMusicPlayer并且歌曲开始在 Apple Music 中播放。

如果我的朋友在英国并且想要播放同一首歌曲,发送544390857到 systemMusicPlayer 会导致歌曲无法被识别(并且没有播放)。

该歌曲的 GB 店面等效 ID 是674900368.

我有两个问题:

  • 有没有一种简单的方法可以让我从 Apple Music 中的另一个店面播放 ID(使用 systemMusicPlayer),还是我必须在新的第二个店面 ID 下重复搜索?

  • 或者,有没有一种方法可以获取一个歌曲 ID(即美国的)并将其换成另一个(即 GB)的 ID?

谢谢你提供的所有帮助!

4

2 回答 2

2

您可以尝试使用Apple Music API来获取正确的信息:

(只有事先不知道歌名才需要第1步,只知道songIds)

  1. 根据 storeFrontCountryCode ('US') 和 songId(与那个 'US' 商店匹配),您可以使用'Get song' API 调用获取 songName(“Sun”)。

  2. 您需要检索用户当前的 storeFront。您可以使用requestStorefrontCountryCodeWithCompletionHandler来完成)

    你会得到类似“GB”的东西。

  3. 使用 songName ('Sun') 和用户 storeFrontCountryCode ('GB'),我们执行“搜索目录资源”以获取正确的歌曲 ID。

最终,为了防止出现重复歌曲名称的问题,您可以将艺术家姓名添加到“搜索目录资源”API 调用中。

于 2018-03-09T12:37:31.293 回答
1

您可以使用歌曲的 isrc 属性来过滤搜索其他地区的歌曲 ID。从返回的列表中,您可以比较哪一首最匹配。(即,一首歌可能出现在多个专辑中并且有不同的编辑)。

第一步是查询原始区域中歌曲的 isrc 属性。例如:

GET https://api.music.apple.com/v1/catalog/us/songs/544390857

然后你将在属性字典中有 isrc 字符串,然后在 GB 店面中查询它:

GET https://api.music.apple.com/v1/catalog/gb/songs?filter[isrc]=XXXXXX

这种方法比按歌名+艺人名搜索要准确得多。

文档链接在这里:Apple Music API

于 2019-03-03T12:27:17.657 回答