2017-07-26 3 views
0

Je crée un art d'album Control Center comme ceci:Déclarant variable pour MPMediaItemArtwork (init() est indisponible)

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] 

    } 

Mais je reçois l'erreur

init() est indisponible

sur la ligne artwork = MPMediaItemArtwork() ligne. Alors, comment puis-je déclarer une variable pour artwork afin que je puisse l'appeler sur la ligne MPMediaItemPropertyArtwork as NSObject: artwork as AnyObject,?

Répondre

0

Ok, correctif assez simple. Je viens de remplacer

if #available(iOS 10.0, *) { 
      artwork = MPMediaItemArtwork.init(boundsSize: image.size, requestHandler: { (size) -> UIImage in 
       return image 
      }) 
     } else { 
      artwork = MPMediaItemArtwork(image: image) 
     } 

avec

let artwork = MPMediaItemArtwork(image: image) 

C'était lol.