【问题标题】:Set MPNowPlayingInfoCenter duration from AVPlayer?从 AVPlayer 设置 MPNowPlayingInfoCenter 持续时间?
【发布时间】:2015-09-24 14:57:02
【问题描述】:

我正在尝试设置 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
]

这有效,信息中心将正确开始计数。

只要我尝试类似的东西

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

它会失败。我应该将 CMTime 转换为双倍吗?还有其他我应该访问的属性吗?

【问题讨论】:

    标签: swift2 avplayer mpmediaitem mpnowplayinginfocenter


    【解决方案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]
    

    duration 应该是 String / like : 02:24

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-07
      • 2017-12-18
      相关资源
      最近更新 更多