2

我正在尝试用 Swift 2.2 (Xcode 7) 编写一个可以播放音频的 iOS 9 应用程序。我所有的文件都是从互联网上读取的,所以我选择了StreamingKit并且可以从多个 ViewController 在后台播放,所以我创建了一个存储音频播放器实例的单例。

我成功让播放器在后台播放音频并在 NowPlayingInfoCenter 中显示信息,但我无法获得工作持续时间我得到了这个结果

在此处输入图像描述

当我开始播放我的文件时,我用这些行初始化 MPNowPlayingInfo

var nowPlayingInfo : Dictionary<String, AnyObject> = [
    MPNowPlayingInfoPropertyPlaybackRate : 1
]
if audioTitle != nil {
    nowPlayingInfo[MPMediaItemPropertyTitle] = audioTitle
}
else {
    nowPlayingInfo[MPMediaItemPropertyTitle] = NSLocalizedString("app_name", comment: "")
}
MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = nowPlayingInfo

当缓冲完成时,我用这些行设置附加信息

var nowPlayingInfo = MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo

//Time
nowPlayingInfo!["MPNowPlayingInfoPropertyElapsedPlaybackTime"] = NSNumber(double: self.audioPlayer.progress)
nowPlayingInfo!["MPMediaItemPropertyPlaybackDuration"] = NSNumber(double: self.audioPlayer.duration)

//Is playing
nowPlayingInfo!["MPNowPlayingInfoPropertyPlaybackRate"] = NSNumber(double: self.isPlaying ? 1.0 : 0.0)

//State
if isError {
    nowPlayingInfo![MPMediaItemPropertyArtist] = NSLocalizedString("player_error", comment: "")
} else if isLoading {
    nowPlayingInfo![MPMediaItemPropertyArtist] = NSLocalizedString("player_loading", comment: "")
} else {
    nowPlayingInfo![MPMediaItemPropertyArtist] = NSString(string: self.audioArtist!)
}

MPNowPlayingInfoCenter.defaultCenter().nowPlayingInfo = nowPlayingInfo

上面我的 NSNumber 构造函数中传递的值的示例(从调试器中检索):进度 = 1.892426303854875 持续时间 = 62.85865814546887

我还尝试像这个答案一样传递格式化的 NSString ,例如在调试器中检索到的这些值:进度 = 0:02 持续时间 = 1:03

播放器时长和搜索栏还是和截图一样

任何人都可以帮助我吗?谢谢

4

0 回答 0