Текущее время: Вт апр 23, 2019 11:36 pm
Часовой пояс: UTC + 2 часа [ Летнее время ]

Заметки по миграции с alsa на pulseaudio

Настройка Linux, *BSD. Программы, хаки, советы

Заметки по миграции с alsa на pulseaudio

Сообщение dimich » Вт апр 09, 2019 9:59 pm

Первым возник вопрос, как переписать привязки клавиш для изменения громкости аудиовыхода вместо amixer. Получилось следующее.
Сначала посмотрел названия стоков:
Код: Выделить всё
$ pactl list sinks
Sink #1
   State: RUNNING
   Name: alsa_output.pci-0000_00_1b.0.analog-stereo
   Description: Built-in Audio Analog Stereo
   Driver: module-alsa-card.c
   Sample Specification: s16le 2ch 48000Hz
   Channel Map: front-left,front-right
   Owner Module: 7
   Mute: no
   Volume: front-left: 29449 /  45% / -20.84 dB,   front-right: 29449 /  45% / -20.84 dB
           balance 0.00
   Base Volume: 65536 / 100% / 0.00 dB
   Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor
   Latency: 6480 usec, configured 6250 usec
   Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
   Properties:
      alsa.resolution_bits = "16"
      device.api = "alsa"
      device.class = "sound"
      alsa.class = "generic"
      alsa.subclass = "generic-mix"
      alsa.name = "ALC887-VD Analog"
      alsa.id = "ALC887-VD Analog"
      alsa.subdevice = "0"
      alsa.subdevice_name = "subdevice #0"
      alsa.device = "0"
      alsa.card = "0"
      alsa.card_name = "HDA Intel PCH"
      alsa.long_card_name = "HDA Intel PCH at 0xf7510000 irq 30"
      alsa.driver_name = "snd_hda_intel"
      device.bus_path = "pci-0000:00:1b.0"
      sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
      device.bus = "pci"
      device.vendor.id = "8086"
      device.vendor.name = "Intel Corporation"
      device.product.id = "1e20"
      device.product.name = "7 Series/C216 Chipset Family High Definition Audio Controller"
      device.form_factor = "internal"
      device.string = "front:0"
      device.buffering.buffer_size = "352800"
      device.buffering.fragment_size = "176400"
      device.access_mode = "mmap+timer"
      device.profile.name = "analog-stereo"
      device.profile.description = "Analog Stereo"
      device.description = "Built-in Audio Analog Stereo"
      alsa.mixer_name = "Realtek ALC887-VD"
      alsa.components = "HDA:10ec0887,1458a002,00100302"
      module-udev-detect.discovered = "1"
      device.icon_name = "audio-card-pci"
   Ports:
      analog-output-lineout: Line Out (priority: 9900, available)
      analog-output-headphones: Headphones (priority: 9000)
   Active Port: analog-output-lineout
   Formats:
      pcm
В поле "Name" нашел название, у меня это "alsa_output.pci-0000_00_1b.0.analog-stereo". Тогда:
Увеличение громкости на 5%:
Код: Выделить всё
pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo +5%

Уменьшение громкости:
Код: Выделить всё
pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo -5%

Переключение mute/unmute:
Код: Выделить всё
pactl set-sink-mute alsa_output.pci-0000_00_1b.0.analog-stereo toggle

Пока осталось неясно, как регулировать громкость на отдельных выходах, ведь, например, у меня на этой звуковухе их два:
Код: Выделить всё
Ports:
      analog-output-lineout: Line Out (priority: 9900, available)
      analog-output-headphones: Headphones (priority: 9000)

Также неясно, сохраняет ли где-то pulse установленную громкость между перезагрузками.

Зато есть интересная фишка: можно единоразово загружать аудиофрагменты в сервер, потом просто указывать, какой фрагмент проиграть, вместо указания имени файла и последующего его чтения с диска. В startup-скрипте графического менеджера:
Код: Выделить всё
pactl upload-sample ~/.resources/volume.wav volume

И в бинде на кнопку, например:
Код: Выделить всё
176 :Exec pactl set-sink-volume alsa_output.pci-0000_00_1b.0.analog-stereo +5%; pactl play-sample volume
Травись, платка, большая и маленькая.
Аватара пользователя
dimich
 
Сообщения: 343
Зарегистрирован: Сб сен 05, 2009 11:14 pm
Откуда: Харків

Вернуться в Системное администрирование

  • Вы не можете начинать темы
    Вы не можете отвечать на сообщения
    Вы не можете редактировать свои сообщения
    Вы не можете удалять свои сообщения
    Вы не можете добавлять вложения
  • Кто сейчас на конференции

    Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron