我正在尝试在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,例如this answer,例如在调试器中检索的以下值: 进展= 0:02 持续时间= 1:03
玩家持续时间和搜索栏仍然像截图
有人可以帮我吗? 感谢