Вопрос или проблема
Например, у меня открыт браузер с YouTube или другой программой, воспроизводящей аудио, и я бы хотел получить текущий уровень аудио в числах от 0 до 100%. Чтобы быть более точным, я видел ответы с командами, которые показывали установленный уровень аудио в системе, но я хочу видеть уровень аудио, который поступает из приложений, воспроизводящих аудио.
Если ваша система использует PulseAudio, вы можете перечислить работающие приложения с помощью pacmd.
Здесь только Firefox воспроизводит звук, с громкостью 54%:
hoov@hal:~$ pacmd list-sink-inputs
1 sink input(s) available.
index: 4577
driver: <protocol-native.c>
flags: START_CORKED
state: RUNNING
sink: 0 <alsa_output.pci-0000_00_1b.0.analog-stereo>
volume: front-left: 35578 / 54% / -15,92 dB, front-right: 35578 / 54% / -15,92 dB
balance 0,00
muted: no
current latency: 89,62 ms
requested latency: 75,00 ms
sample spec: float32le 2ch 48000Hz
channel map: front-left,front-right
Stereo
resample method: speex-float-1
module: 14
client: 840 <Firefox>
properties:
media.name = "AudioStream"
application.name = "Firefox"
native-protocol.peer = "UNIX socket client"
native-protocol.version = "33"
application.process.id = "11744"
application.process.user = "gobuki"
application.process.host = "morpheus"
application.process.binary = "firefox"
application.language = "en_US.UTF-8"
window.x11.display = ":0"
application.process.machine_id = "0f06bccf24c24ae5ba5d40c54b7d8f58"
application.process.session_id = "2"
application.icon_name = "firefox"
module-stream-restore.id = "sink-input-by-application-name:Firefox"
Ответ или решение
Чтобы получить текущий уровень громкости вывода динамиков в терминале, в контексте операционной системы, использующей PulseAudio, вы можете воспользоваться командой pacmd
. Это позволяет вам не только узнать уровень громкости, установленный в самом приложении, но и фактический уровень звука, который выводят запущенные приложения, такие как браузеры или музыкальные плееры.
Шаги для получения текущего уровня громкости:
-
Открытие терминала: Начните с открытия терминала на вашем устройстве. Это может быть сделано через поиск вашего графического интерфейса пользовательских приложений или с помощью сочетания клавиш.
-
Запуск PulseAudio: Убедитесь, что у вас установлена и запущена служба PulseAudio, так как именно эта система звука будет отвечать за управление аудиоустройствами и выводом звука.
-
Использование команды pacmd: Чтобы отобразить информацию о приложениях, которые в данный момент воспроизводят звук, выполните следующую команду:
pacmd list-sink-inputs
-
Анализ вывода: После выполнения команды вы увидите список всех активных потоков аудио. Это будет выглядеть примерно так:
index: 4577 driver: <protocol-native.c> state: RUNNING ... volume: front-left: 35578 / 54% / -15,92 dB, front-right: 35578 / 54% / -15,92 dB
Основное внимание следует уделить строке, содержащей
volume
, которая указывает уровень громкости в процентах и в дБ. -
Интерпретация данных: В наглядном примере видно, что уровень громкости составляет 54%. Это означает, что звук из приложения (например, Firefox) воспроизводится на уровне 54% от максимального уровня.
Примечания:
- Убедитесь, что у вас установлены необходимые пакеты, такие как
pavucontrol
, для более расширенного контроля и диагностики звука в PulseAudio, если вам это нужно. - Если вы обработали все эти шаги и команда
pacmd
не возвращает ожидаемого результата, проверьте, нет ли ограничений на использование PulseAudio на вашем устройстве, или попробуйте перезапустить службу PulseAudio.
Таким образом, данный метод дает вам прямой доступ к текущему уровню громкости вывода динамиков, что может быть полезно для настройки аудиоустройств или мониторинга уровня звука в реальном времени.