Установить продолжительность MPNowPlayingInfoCenter из AVPlayer?

Я пытаюсь установить MPNowPlayingInfoCenter, большинство пар ключ-значение работают нормально, но есть какая-то проблема со временем воспроизведения.

let mpic = MPNowPlayingInfoCenter.defaultCenter()    

mpic.nowPlayingInfo = [
    MPMediaItemPropertyArtwork:albumArtWork,
    MPMediaItemPropertyTitle:titleString,
    MPMediaItemPropertyArtist:artistName,
    MPMediaItemPropertyPlaybackDuration:99,
    MPNowPlayingInfoPropertyElapsedPlaybackTime:String(stringInterpolationSegment:self.myPlayer.currentItem?.currentTime()),
    MPNowPlayingInfoPropertyPlaybackRate:1.0
]

это работает, и InfoCenter правильно начнет подсчет.

Как только я попробую что-то вроде

MPMediaItemPropertyPlaybackDuration:String(stringInterpolationSegment:self.myPlayer.currentItem?.duration())

это не удастся. Должен ли я конвертировать CMTime в double? Есть ли какое-либо другое свойство, к которому я должен получить доступ?


person longbow    schedule 24.09.2015    source источник


Ответы (1)


попробуй это

    let elapsedTime = NSNumber(double : CMTimeGetSeconds(AudioAvPlayer.currentItem!.currentTime()))
    let keys = NSArray(objects:
        MPMediaItemPropertyTitle,
        MPMediaItemPropertyArtist,
        MPMediaItemPropertyPlaybackDuration,
        MPNowPlayingInfoPropertyPlaybackRate,
        MPNowPlayingInfoPropertyElapsedPlaybackTime)
    let values = NSArray (objects:
        m_PlayContent.Title,
        m_PlayContent.Artist,
        m_PlayContent.Duration,
        NSNumber(integer: 1),
        elapsedTime)
    let mediaInfo = NSDictionary(objects: values as [AnyObject], forKeys: keys as! [NSCopying])
    MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = mediaInfo as [NSObject : AnyObject]

продолжительность должна быть как String / like: 02:24

person Saeed-rz    schedule 27.09.2015