2017-06-03 74 views
0

我无法设置MPNowPlayingInfoCenter的currentTime和songLength。这里是我的代码:从AVAudioPlayer设置MPNowPlayingInfoCenter currentTime和songLength

func updateNowPlayingCenter (title: String, artist: String, albumArt: AnyObject, currentTime: NSNumber, songLength: NSNumber, PlaybackRate: Double){ 

    var songInfo: Dictionary <NSObject, AnyObject> = [ 

     MPMediaItemPropertyTitle as NSObject: title as AnyObject, 

     MPMediaItemPropertyArtist as NSObject: artist as AnyObject, 

     MPMediaItemPropertyArtwork as NSObject: ???, 

     MPNowPlayingInfoPropertyElapsedPlaybackTime as NSObject: currentTime, 

     MPMediaItemPropertyPlaybackDuration as NSObject: songLength, 

     MPNowPlayingInfoPropertyPlaybackRate as NSObject: PlaybackRate as AnyObject 


    ] 

    MPNowPlayingInfoCenter.default().nowPlayingInfo = songInfo as [NSObject : AnyObject] as! [String : Any] 

} 

这里的地方我将在viewWillAppear中的属性:

updateNowPlayingCenter(title: titleText[thisSong], artist: authorText[thisSong], albumArt: ??? as AnyObject, currentTime: ???, songLength: ???, PlaybackRate: 1.0) 

我试图用audioPlayer.currentTime和audioPlayer.duration,但没有奏效。我该怎么做呢?此外,我无法弄清楚如何设置MPMediaItemPropertyArtwork的图像。我的文件中有文件,图像名称等于titleText [thisSong]。如果你也可以帮助我,那太棒了!谢谢!

回答

0

苹果Media Playback Programming Guide提供了答案:

func setupNowPlaying() { 
    // Define Now Playing Info 
    var nowPlayingInfo = [String : Any]() 
    nowPlayingInfo[MPMediaItemPropertyTitle] = "My Movie" 
    if let image = UIImage(named: "lockscreen") { 
     nowPlayingInfo[MPMediaItemPropertyArtwork] = 
      MPMediaItemArtwork(boundsSize: image.size) { size in 
       return image 
     } 
    } 
    nowPlayingInfo[MPNowPlayingInfoPropertyElapsedPlaybackTime] = playerItem.currentTime().seconds 
    nowPlayingInfo[MPMediaItemPropertyPlaybackDuration] = playerItem.asset.duration.seconds 
    nowPlayingInfo[MPNowPlayingInfoPropertyPlaybackRate] = player.rate 

    // Set the metadata 
    MPNowPlayingInfoCenter.default().nowPlayingInfo = nowPlayingInfo 
}