所以我想显示URL中的图像。
我知道我首先需要对其进行友好的URL编码-
.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
例如
if var strUrl = nowplaying.data.first?.track.imageurl {
strUrl = strUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
}
但是我如何将其放入MPMediaItemPropertyArtwork。
我使用了第三部分的翠鸟插件,尝试了许多不同的方法-但没有成功。
如果有人可以告诉我如何获取下图以显示效果很好
http://covers.drn1.com.au/az_B101753_Wish You Were Here_Brain Purist.jpg
答案 0 :(得分:2)
您需要为其MPRemoteCommandCenter
设置nowPlayingInfo
:
func setupNowPlayingInfo(with artwork: MPMediaItemArtwork) {
nowPlayingInfo = [
MPMediaItemPropertyTitle: "Some name",
MPMediaItemPropertyArtist: "Some name",
MPMediaItemPropertyArtwork: artwork,
MPMediaItemPropertyPlaybackDuration: CMTimeGetSeconds(currentItem.duration)
MPNowPlayingInfoPropertyPlaybackRate: 1,
MPNowPlayingInfoPropertyElapsedPlaybackTime: CMTimeGetSeconds(currentItem.currentTime())
]
}
func getData(from url: URL, completion: @escaping (UIImage?) -> Void) {
URLSession.shared.dataTask(with: url, completionHandler: {(data, response, error) in
if let data = data {
completion(UIImage(data:data))
}
})
.resume()
}
func getArtBoard() {
guard let url = URL(string: "http://covers.drn1.com.au/az_B101753_Wish%20You%20Were%20Here_Brain%20Purist.jpg") else { return }
getData(from: url) { [weak self] image in
guard let self = self,
let downloadedImage = image else {
return
}
let artwork = MPMediaItemArtwork.init(boundsSize: downloadedImage.size, requestHandler: { _ -> UIImage in
return downloadedImage
})
self.setupNowPlayingInfo(with: artwork)
}
}