Код: Выделить всё
.onAppear {
do {
try AVAudioSession.sharedInstance().setActive(true)
} catch {
print(error.localizedDescription)
}
}
.onReceive(AVAudioSession.sharedInstance().publisher(for: \.outputVolume), perform: { value in
print(value)
print(AVAudioSession().outputVolume) // All returning the same valuse
print(AVAudioSession.sharedInstance().outputvolume)
})
Если я использую приведенное выше утверждение, я получаю следующие результаты при увеличении громкости с минимального до максимального: 0,0; 0,05; 0,15; 0,2; 0,25; 0,3; 0,4; 0,45; 0,5; 0,55; 0,65; 0,7; 0,75; 0,8; 0,9; 1,0
Значения 0,1; 0,35; 0,6; 0.85 не появилось.
При использовании центра управления для регулировки громкости и повторном нажатии кнопок громкости другие значения отсутствуют.
Похоже, что фактические значения округлены до 0 или 5.
Как мне получить фактический уровень громкости от 0,00 до 1,00? Бонусные баллы за решение в стиле SwiftUI.
Подробнее здесь: https://stackoverflow.com/questions/783 ... rrect-volu