所以我正在尝试上周发布的Apple的MusicKit JS
(https://developer.apple.com/documentation/musickitjs)。我在播放从图书馆端点获取的歌曲时遇到了麻烦,而且由于id格式,我可以告诉它。
如果我使用他们的doc示例并将队列设置为ID为1025210938
的相册,那么歌曲就可以正常播放。但是,当从用户的iCloud库(即/v1/me/library/albums
或musickitjs case music.api.library.albums()
)获取歌曲时,我会得到一个类似l.uUZAkT3
的ID,当我尝试玩它们。
也许更熟悉Apple Music的API如何工作或者使用MusicKit for iOS的人可以让我知道为什么会这样或者如何为用户的库项目获取可用的id。
答案 0 :(得分:0)
大多数MusicKit JS都基于Promises。 setQueue
方法是基于Promise的方法之一。
特别是setQueue
可以为您提取数据,如果您还没有方便的API数据响应。
为了确保数据可以使用,您可能希望在已解决的Promise中执行任何回放功能。
MusicKit.getInstance().setQueue({ album: 'l.abc123'}).then(function(queue) {
MusicKit.getInstance().play();
});
或
MusicKit.getInstance().api.library.albums().then(function(albums) {
MusicKit.getInstance().setQueue(albums[0]).then(function(queue) {
MusicKit.getInstance().play();
});
});