2017-06-03 4 views
0

MPNowPlayingInfoCenterのcurrentTimeとsongLengthの設定に問題があります。ここに私のコードです:MPNowPlayingInfoCenterのcurrentTimeとsongLengthをAVAudioPlayerから設定します

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のイメージを設定する方法を理解できません。私は私のassestsのファイルを持っていて、イメージ名はtitleText [thisSong]と同じです。あなたもそれで私を助けることができたら、それは素晴らしいだろう!ありがとう!

答えて

0

Appleの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 
} 
関連する問題