Регулятор громкости iOS через Bluetooth - PullRequest
0 голосов
/ 17 октября 2018

Я довольно новичок в разработке для iOS, и в настоящее время я занимаюсь разработкой приложения, которое должно управляться периферийным устройством Bluetooth.Если периферийное устройство посылает сигнал, телефон должен увеличить громкость своей системы.Я нахожу только примеры с ползунками.Есть ли способ увеличить громкость системы?Помощь будет оценена.Спасибо.

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Не поддерживается способ изменения системного тома.Это было намеренно удалено (раньше использовались поддерживаемые способы).

Существует устаревший способ (начиная с iOS 7), который в настоящее время работает, но может исчезнуть в любом будущем выпуске.Вы можете использовать [[MPMusicPlayerController systemMusicPlayer] setVolume:] для установки мастер-громкости.

Новый поддерживаемый способ изменить системный том - открыть MPVolumeView и позволить пользователю изменять громкость.Но нет программного интерфейса.Вы можете охотиться за ползунками и настраивать их, хотя.Это действительно хрупко;иногда структура меняется между версиями ОС, и Apple может переместить это представление в другой процесс в будущем (как они сделали с несколькими другими представлениями, с которыми они не хотят, чтобы вы портились).Я не рекомендую такой подход и не собираюсь писать код для этого (поскольку устаревший setVolume: все еще работает).Но это возможно.

Опять же, все это не поддерживается, и Apple может отклонить ваше приложение из-за него.

0 голосов
/ 17 октября 2018
var currentVolume: Float = 0.0
let mpVolumeView = MPVolumeView()
func volumeSliderControl(_ volume: Float) {
    let volumeSlider = (mpVolumeView.subviews.filter { NSStringFromClass($0.classForCoder) == "MPVolumeSlider" }.first as! UISlider)
    currentVolume = currentVolume + volume
    currentVolume = currentVolume > 1.0 ? 1.0 : currentVolume < 0.0 ? 0.0 : currentVolume
    debugLog("currentVolume: \(currentVolume)")
    volumeSlider.setValue(currentVolume, animated: false)
    volumeSlider.sendActions(for: .valueChanged)
}

Для вышеуказанной функции просто передайте диапазон громкости от 0 до 1 в Float. Этот код только для управления громкостью музыки / медиа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...