我在浏览器中使用MusicKit JS制作了一个Apple Music播放器。我可以从我的库中查看和播放歌曲,但我购买的任何音乐的专辑艺术(而不是从CD或其他媒体源上传的(都会返回404。
例如,我用获得相册艺术
music.api.library.songs().then(songs => {
songs.forEach(song => {
const albumArt = song.attributes.artwork.url
document.getElementById('my-example').innerHTML = `<img src="${albumArt} alt="album art" />`
})
})
但我购买的歌曲的专辑艺术退货404,而我自己上传的歌曲的相册艺术还可以。
购买音乐的专辑艺术的URL包括'{w}x{h} "。这似乎是宽度和高度参数的默认值。我不确定是否有一些API参数可以传递来解决这个问题,但我在将其放入DOM之前,通过在image src上调用replace('{w}x{h}', '300x300')
来解决问题。
MusicKitJs实际上有一个为您格式化图像的实用函数。从他们的文件:
static string formatArtworkURL(Artwork artwork, undefined height, undefined width);
您可以在musicKit实例上使用此函数,并以px为单位输入您的高度和宽度。来源:https://developer.apple.com/documentation/musickitjs/musickit/3001508-formatartworkurl