У меня есть собственный класс, который воспроизводит аудио с AVPlayer.В методе этого класса добавили команды воспроизведения, паузы, предыдущей и следующей дорожки к экземпляру MPRemoteCommandCenter, например, так:
let mediaPlayerCommandCenter = MPRemoteCommandCenter.shared()
mediaPlayerCommandCenter.playCommand.addTarget(self, action: #selector(playRemoteHandler(_:))) // .. and so on
Я также добавил детали MPNowPlayingInfoCenter.«Фоновый режим» включен в разделе «Возможности» настроек проекта, и приложение воспроизводит аудио в фоновом режиме.
В приложении (метод application: didFinishLaunchingWithOptions :) выбрана и активирована категория AVAudioSession:
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print(error)
}
application.beginReceivingRemoteControlEvents() // in the documentation noticed that it is not necessary if we are using MPRemoteCommandCenter but anyways I tried it also
После всех этих кодов пульты дистанционного управления не видны ни на экране блокировки, ни в центре управления.Но в фоновом режиме звук воспроизводится нормально.