【问题标题】:Set MPNowPlayingInfoCenter currentTime and songLength from AVAudioPlayer从 AVAudioPlayer 设置 MPNowPlayingInfoCenter currentTime 和 songLength
【发布时间】:2017-06-03 14:16:58
【问题描述】:

我在设置 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]。如果你也能帮助我,那就太棒了!谢谢!

【问题讨论】:

    标签: swift avaudioplayer mpmediaitem mpnowplayinginfocenter


    【解决方案1】:

    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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多