我正在为控制中心创建一个专辑封面,如下所示:
func updateNowPlayingCenter (title: String, artist: String, PlaybackRate: Double){
var artwork = MPMediaItemArtwork()
let image:UIImage = UIImage(named: title)!
if #available(iOS 10.0, *) {
artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in
return image
})
} else {
artwork = MPMediaItemArtwork(image: image)
}
var songInfo: Dictionary <NSObject, AnyObject> = [
MPMediaItemPropertyTitle as NSObject: title as AnyObject,
MPMediaItemPropertyArtist as NSObject: artist as AnyObject,
MPMediaItemPropertyArtwork as NSObject: artwork as AnyObject,
MPMediaItemPropertyPlaybackDuration as NSObject: audioPlayer.duration as AnyObject,
MPNowPlayingInfoPropertyElapsedPlaybackTime as NSObject: audioPlayer.currentTime as AnyObject,
MPNowPlayingInfoPropertyPlaybackRate as NSObject: PlaybackRate as AnyObject
]
MPNowPlayingInfoCenter.default().nowPlayingInfo = songInfo as [NSObject : AnyObject] as! [String : Any]
}
但我收到错误
init() is unavailable
在 artwork = MPMediaItemArtwork()
行上。那么,如何为 artwork
声明一个变量,以便我可以在线 MPMediaItemPropertyArtwork as NSObject: arts as AnyObject,
调用它?
最佳答案
好的,修复非常简单。我刚刚更换
if #available(iOS 10.0, *) {
artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in
return image
})
} else {
artwork = MPMediaItemArtwork(image: image)
}
与
let artwork = MPMediaItemArtwork(image: image)
关于swift - 为 MPMediaItemArtwork 声明变量(init() 不可用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45334113/