У меня есть приложение, воспроизводящее mp3 с AVPlayer, и я пытаюсь скрыть Remote Command Center, когда трек закончен. Это забавно c настроить мой Remote Command Center.
Как мне это скрыть?
fun c setupRemoteCommandCenter () {
// Get the shared MPRemoteCommandCenter
let commandCenter = MPRemoteCommandCenter.shared()
// Add handler for Play Command
commandCenter.playCommand.addTarget { [unowned self] event in
if self.avPlayer?.rate == 0.0 {
self.togglePlayPause()
return .success
}
return .commandFailed
}
// Add handler for Pause Command
commandCenter.pauseCommand.addTarget { [unowned self] event in
if self.avPlayer?.rate == 1.0 {
self.togglePlayPause()
return .success
}
return .commandFailed
}
let skipForwardCommand = commandCenter.skipForwardCommand
skipForwardCommand.isEnabled = true
skipForwardCommand.addTarget(handler: skipForward)
skipForwardCommand.preferredIntervals = [15]
let skipBackwardCommand = commandCenter.skipBackwardCommand
skipBackwardCommand.isEnabled = true
skipBackwardCommand.addTarget(handler: skipForward)
skipBackwardCommand.preferredIntervals = [15]
commandCenter.changePlaybackPositionCommand.addTarget { [weak self](remoteEvent) -> MPRemoteCommandHandlerStatus in
guard let self = self else {return .commandFailed}
if let player = self.avPlayer {
let playerRate = player.rate
if let event = remoteEvent as? MPChangePlaybackPositionCommandEvent {
player.seek(to: CMTime(seconds: event.positionTime, preferredTimescale: CMTimeScale(1000)), completionHandler: { [weak self](success) in
guard let self = self else {return}
if success {
self.avPlayer?.rate = playerRate
}
})
return .success
}
}
return .commandFailed
}
}