此代码的工作正确:
func setInfoCenterCredentials(_ artist: String, _ title: String, _ image: UIImage) {
let mpic = MPNowPlayingInfoCenter.default()
let albumArt = MPMediaItemArtwork(image: image)
mpic.nowPlayingInfo = [MPMediaItemPropertyTitle: title,
MPMediaItemPropertyArtist: artist,
MPMediaItemPropertyArtwork: albumArt]
}
但Xcode抱怨:let albumArt = MPMediaItemArtwork(image: image)
,
'init(image :)'在iOS 10.0中已弃用
我试图将image
设为MPMediaItemPropertyArtwork: image
,但这会导致崩溃。
如何为iOS 10.0正确设置?非常感谢帮助。
编辑:是的。我在文档中找到了该部分:
init(boundsSize: CGSize, requestHandler: @escaping (CGSize) -> UIImage)
但我不知道如何使用它。
答案 0 :(得分:4)
那么初始化程序要求的是什么?它想要一个大小(足够公平),它想要一个函数,它提供给定大小的图像。
所以你可以天真地实现它:
let albumArt = MPMediaItemArtwork(boundsSize:mySize) { sz in
return image
}
如果填写了必要的空白,那么应该让你通过编译器(让我知道它是不是;我还没有对它进行测试)。但是,它不是一个很好的实现!您应该在函数中执行的操作是将图像的大小调整为传入参数(我的代码中为sz
)中请求的大小。我想我会把它作为读者的练习......!