swift - 为 MPMediaItemArtwork 声明变量(init() 不可用)

标签 swift uiimage mpmediaitem

我正在为控制中心创建一个专辑封面,如下所示:

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/

相关文章:

ios - 从 UITableView 中的 Label 快速计数

ios - 如何创建自定义 UICollectionViewCell 并将来自 URL 的图像添加到它?

ios - MediaItemCollection 中的下一首歌曲?

ios - 使用特定动态类型尺寸的字体

swift - 使用 Swift Joint 执行 2 个并行网络请求

ios - UINavigationBar 以编程方式出现在 Swift 中不起作用

ios - 如何获取gif资源UIImage

ios - 在 UIImage imageNamed 中使用外部图像

ios - 如何在iOS中设置MediaItemArtwork图像填充在UITableViewCell中?

ios - 获取 iPod 播放器项目的 iTunes ID