В настоящее время я распечатываю изображение для воспроизведения, используя следующий код.
if var strUrl = nowplaying.data.first?.track.imageurl {
strUrl = strUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
self.imageurl.kf.setImage(with: URL(string: strUrl), placeholder: nil)
}
Я хочу отправить это изображение на
MPMediaItemPropertyArtwork
который находится в следующей функции
func nowplaying(artist: String, song: String, artwork: String){
MPNowPlayingInfoCenter.default().nowPlayingInfo = [
MPMediaItemPropertyTitle:song,
MPMediaItemPropertyArtist:artist,
MPMediaItemPropertyArtwork:artwork
]
}
В настоящее время у меня есть MusicPlayer.shared.nowplaying(artist: $0.track.artist, song: $0.track.title, artwork: $0.track.imageurl)
, который отправляет данные правильно, но затем падает - и я знаю, что это потому, что вы не можете иметь удаленное изображение в разделе обложек для MPMediaItemProperty
...
Итак, мне интересно, как мне кэшировать изображение и отправить его?
использован код
let artwork = MPMediaItemArtwork(boundsSize: CGSize(width: 100, height: 100)) { size -> UIImage in
KingfisherManager.shared.retrieveImage(with: cover, options: nil, progressBlock: nil, completionHandler: { image, error, cacheType, imageURL in
print(image)
})
return UIImage()
}
он печатает в журнале консоли
Optional(<UIImage:0x280a4e0a0 anonymous {500, 500}>)
но, кажется, не печатает его на
MPMediaItemPropertyArtwork