Swift: кнопки перемотки на заблокированном экране

У меня есть AVAudioPlayer. И я хочу добавить 15-секундные кнопки перемотки на экран блокировки, как на этом изображении:

enter image description here

Но у меня такой результат, как на этом изображении:

enter image description here

Мой код:

var audioPlayer: AVAudioPlayer!

override func viewDidLoad() {
    super.viewDidLoad()

    try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
    try? AVAudioSession.sharedInstance().setActive(true)
    UIApplication.shared.beginReceivingRemoteControlEvents()

    ...

    audioPlayer = try AVAudioPlayer(contentsOf: soundURL!)
    audioPlayer.delegate = self
    audioPlayer.prepareToPlay()
    play(sender:AnyObject.self as AnyObject)
    restorePlayerCurrentTime()
}

override func remoteControlReceived(with event: UIEvent?) {
        guard let event = event else {
            print("no event\n")
            return
        }
        guard event.type == UIEventType.remoteControl else {
            print("received other event type\n")
            return
        }
        
        switch event.subtype {
        
        case UIEventSubtype.remoteControlBeginSeekingBackward:
            audioPlayer.play()
        
        case UIEventSubtype.remoteControlBeginSeekingForward:
            audioPlayer.pause()
        
        case UIEventSubtype.remoteControlPlay:
            print("received remote play\n")
            audioPlayer.play()
        case UIEventSubtype.remoteControlPause:
            print("received remote pause\n")
            audioPlayer.pause()
        
        /*case UIEventSubtype.remoteControlTogglePlayPause:
            print("received toggle\n")*/
            
        default:
            print("received \(event.subtype) which we did not process\n")
        }
    }

Как это исправить?

Кнопки паузы и плей работают нормально, но перемотка не работает и иконка не меняется.


Ответы (0 шт):