ios - MPMediaItemArtwork bounds.size 为零,而 iOS 音乐中提供了封面
问题描述
我正在尝试在 iOS 音乐应用中获取正在播放的歌曲的艺术作品。艺术品在 iOS 音乐应用程序中正确显示,但调用MPMediaItemArtwork.bounds.size
返回(0,0)
含义MPMediaItemArtwork.image(at: CGSize)
无法返回图像。这听起来类似于iOS 8 中的这个问题,但实施那里的建议并没有解决我的问题。
该问题似乎与 Apple Music 中但未添加到用户资料库中的项目有关,但是一些不在用户资料库中的歌曲确实会加载艺术品。有时强制关闭 iOS 音乐应用程序可以解决问题,但有时不能。
这是我用来获取图像的代码。
mediaItem = MPMusicPlayerController.systemMusicPlayer.nowPlayingItem
if let artwork = mediaItem.artwork {
// Forcing a size using artwork.image(at: CGSize(width: 120, height: 120)) also fails
if let image = artwork.image(at: artwork.bounds.size) {
artworkImage = image
return
}
}
我偶尔会在 Xcode 控制台中看到如下所示的错误,但并非每次无法加载艺术品时都会出现该消息,并且我无法以任何一致性重现它(即为同一首歌曲加载艺术品并不总是会产生错误)。
2020-06-03 11:03:11.763148+1000 App[] [Artwork] [MPArtwork]
HALTING -- Error loading artwork for catalog:
<MPArtworkCatalog: 0x2801b8c40 token=<MPMusicPlayerControllerNowPlaying: 0x282403120> fittingSize={0, 0} destinationScale=3.000000 destination=(null)>
Error Domain=MPMusicPlayerControllerErrorDomain Code=7 "b1..5A:https://is3-ssl.mzstatic.com/image/thumb/Music5/v4/82/ce/dc/82cedc46-4097-a400-a496-b438faecfc49/dj.eaozurbq.jpg/1425x1425bb.jpg does not support artwork."
UserInfo={NSDebugDescription=b1...5A:https://is3-ssl.mzstatic.com/image/thumb/Music5/v4/82/ce/dc/82cedc46-4097-a400-a496-b438faecfc49/dj.eaozurbq.jpg/1425x1425bb.jpg does not support artwork.}
解决方案
推荐阅读
- c - C: what's wrong with the code in the image?
- c++ - runtime polymorphic invocation of pure virtual function via std::reference_wrapper behaving inconsistently
- python - How to filter DataTime field by hour in Django?
- php - 如何使用 php 将 keynote 文件转换为 PDF 文件?
- angular - 角度范围问题
- java - NotSerializableException with java.awt.geom.Area
- html - How do I add and remove HTML elements with only HTML5 and CSS?
- r - Keep duplicates on multiple columns in R
- php - How to verfiy postcode using php?
- asp.net-mvc - 使用令牌错误 Access-Control-Allow-Origin' 进行登录身份验证