Управление звуком на экране блокировки с помощью AudioKit

Я использую AudioKit для управления звуковым движком в моем приложении. Я думаю, что настройки AudioKit что-то перекрывают, и я не могу получить управление звуком на экране блокировки. Это код, который у меня есть в настоящее время:

//Configure media control center
    UIApplication.shared.beginReceivingRemoteControlEvents()
    let commandCenter = MPRemoteCommandCenter.shared()

    commandCenter.pauseCommand.addTarget { (event) -> MPRemoteCommandHandlerStatus in
        //Update your button here for the pause command
        return .success
    }

    commandCenter.playCommand.addTarget { (event) -> MPRemoteCommandHandlerStatus in
        //Update your button here for the play command
        return .success
    }

У меня есть это в функции, которая устанавливает все мои настройки AudioKit, но это не работает. Существует ли специальная процедура для управления звуком на экране блокировки с помощью AudioKit?

3 ответа

Вы должны написать этот код в appdelegate для реализации:

do {
    try AVAudioSession.sharedInstance().setActive(true)
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
}catch{

}
UIApplication.shared.beginReceivingRemoteControlEvents()
You have to rewrite this methord:
//MARK:-音乐播放相应后台状态
override func remoteControlReceived(with event: UIEvent?) {
    if (event?.type == .remoteControl) {
        NotificationCenter.default.post(name: NSNotification.Name(rawValue: Configs.remotePlayCotrolNotificaation), object: nil, userInfo: ["event":event!])
    }
}

Имейте в виду, что важно отключить .mixWithOthers

Другие вопросы по тегам