URL 在 MPMediaItemPropertyArtwork 中显示
URL to show in MPMediaItemPropertyArtwork
所以我想显示来自 URL 的图像。
我知道我首先需要让它变得友好 URL 编码 -
.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
例如
if var strUrl = nowplaying.data.first?.track.imageurl {
strUrl = strUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
}
但是我如何才能将其放入 MPMediaItemPropertyArtwork。
我尝试了很多与使用第 3 部分 kingfisher 插件不同的东西 - 但没有成功。
如果有人能告诉我如何得到下面的图像来显示那会很棒
http://covers.drn1.com.au/az_B101753_Wish You Were Here_Brain Purist.jpg
您需要设置 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)
}
}
所以我想显示来自 URL 的图像。
我知道我首先需要让它变得友好 URL 编码 -
.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
例如
if var strUrl = nowplaying.data.first?.track.imageurl {
strUrl = strUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!
}
但是我如何才能将其放入 MPMediaItemPropertyArtwork。
我尝试了很多与使用第 3 部分 kingfisher 插件不同的东西 - 但没有成功。
如果有人能告诉我如何得到下面的图像来显示那会很棒
http://covers.drn1.com.au/az_B101753_Wish You Were Here_Brain Purist.jpg
您需要设置 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)
}
}