try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, mode: .default);
try? AVAudioSession.sharedInstance().setActive(true);
let path = Bundle.main.path(forResource: "sample", ofType: "mp3")!
let player = try! AVAudioPlayer(contentsOf: URL(fileURLWithPath: path))
player.numberOfLoops = -1;
player.play();
let commandCenter = MPRemoteCommandCenter.shared()
commandCenter.playCommand.addTarget { _ in
player.play()
return .success
}
commandCenter.pauseCommand.addTarget { _ in
player.pause()
return .success
}
var nowPlayingInfo = [String : Any]()
nowPlayingInfo[MPNowPlayingInfoPropertyElapsedPlaybackTime] = player.currentTime
nowPlayingInfo[MPMediaItemPropertyPlaybackDuration] = player.duration
MPNowPlayingInfoCenter.default().nowPlayingInfo = nowPlayingInfo
Приведенный выше код зацикливает звук бесконечно.Однако на элементе управления экрана блокировки время дорожки застревает в конце дорожки (вместо сброса), когда дорожка завершает цикл:
Как обновить текущее время на треке, отображаемое nowPlayingInfo?