PulseAudio (Русский)
Ссылки по теме
PulseAudio - это звуковой сервер, который обычно используется для окружений рабочего стола, таких как GNOME или KDE. Он служит в качестве прокси для звуковых приложений, используя существующие звуковые компоненты, такие как ядро ALSA или OSS. ALSA включена в Arch Linux по умолчанию, использование PulseAudio вместе с ALSA является наиболее распространённым сценарием.
Contents
Установка
- Требуется пакет: pulseaudio
- Дополнительно: графические интерефейсы GTK: paprefs и pavucontrol
- Дополнительно: регулировка звука с помощью мультимедиа клавиш на клавиатуре: pulseaudio-ctlAUR
- Дополнительно: консольные (CLI) микшеры: ponymix и pamixer-gitAUR
- Дополнительно: консольный (с поддержкой курсора) микшер: pulsemixerAUR
- Дополнительно: web-интерфейс для регулировка звука: PaWebControl
- Дополнительно: иконка в системном трее: pasystray-gitAUR
- Дополнительно: апплет KDE4 плазма: kdemultimedia-kmix и kdeplasma-applets-veromixAUR[ссылка недействительна: сохранено в aur-mirror] (Если KMix/Veromix не удается подключиться к PulseAudio при загрузке, вы можете отредактировать
/etc/pulse/client.conf
включивautospawn = yes
вместоautospawn = no
.) - Дополнительно: KF5 плазма аплет: kmix и plasma-pa
- Если вы хотите использовать Гарнитуру Bluetooth или другое Bluetooth Аудио Устройство вместе с PulseAudio смотрите статью Bluetooth headset.
Модули PulseAudio
Некоторые модули PulseAudio были убраны из основного пакета и должны быть установлены отдельно, если это необходимо.
Настройка
Файлы настроек
По умолчанию PulseAudio настроен на управление и автоматическое обнаружение всех звуковых карт. Он берёт под свой контроль все обнаруженные устройства ALSA, и перенаправляет все аудиопотоки на себя, делая демон PulseAudio центральной точкой настроек. Демон, в основном, должен работать "из коробки", требуя только нескольких незначительных изменений настроек.
PulseAudio будет сначала смотреть файлы настроек в домашнем каталоге ~/.config/pulse
, а затем в общесистемном /etc/pulse
.
PulseAudio работает как демон сервера, который может работать или общесистемно или для каждого пользователя, с помощью архитектуры клиент/сервер. Без своих модулей демон сам по себе ничего не делает, кроме обеспечения API и размещения динамически загружаемых модулей. Вся маршрутизация аудио и обработка задач обрабатывается различными модулями. Вы можете найти подробный список всех доступных модулей в Загружаемые Модули Pulseaudio (Англ.). Чтобы включить их, Вы можете добавить строку load-module <имя модуля из списка>
в ~/.config/pulse/default.pa
.
daemon.conf
Определяет основные настройки, такие как: частоты дискретизации по умолчанию, используемые модулями, методы повторной выборки, планирование в реальном времени, и другие различные настройки, связанные с серверным процессом. Они не могут быть изменены во время выполнения, без перезапуска демона PulseAudio. Значения по умолчанию разумны для большинства пользователей.
опция | описание | system-instance (системный экземпляр) | Запустит демон как общесистемный экзеппляр. Крайне нежелательно, поскольку это может привести к проблемам безопасности. Полезно в (headless) системах, не имеющих никаких настоящих локальных пользователей. Значение по умолчанию no .
|
resample-method (метод частоты дискретизации) | Какой метод частоты дискретизации (resampler) использовать, когда звук с несовместимыми частотами дискретизации должен быть передан между модулями (например, воспроизведение звука на 96 кГц на аппаратном обеспечении, поддерживающим только 48 кГц). Доступные resampler'ы могут быть перечислены с помощью $ pulseaudio --dump-resample-methods . Выберите и используйте лучший компромисс между загрузкой процессора и качеством звука.
|
flat-volumes | flat-volumes масштабирует громкость устройства с громкостью "самого громкого" приложения. Например, повышение громкости вызова VoIP повысит аппаратную громкость и скорректирует звук аудиоплеера, таким образом, что понижать громкость аудиоплеера вручную нет необходимости. Значение по умолчанию yes .
|
default-fragments (фрагменты по умолчанию) | Аудиосэмплы разделяются на многократные фрагменты default-fragment-size-msec . Чем больше буфер, тем менее вероятен пропуск звука, когда система будет перегружена. С другой стороны это увеличит общую величину задержки. Увеличьте это значение, если у Вас есть проблемы.
|
---|
default.pa
Этот файл является сценарием запуска и используется для настройки модулей. Он анализируется и читается после завершения инициализации демона. Дополнительные команды могут быть отправлены во время выполнения с помощью $ pactl
или $ pacmd
. Сценарий запуска также может быть указан в командной строке, путем запуска PulseAudio в терминале, с помощью $ pulseaudio -nC
. Это заставит демона загрузить модуль CLI и принимать настройки непосредственно из командной строки, выдавать получающуюся информацию или сообщения об ошибках на том же терминале. Это может быть полезно при отладке демона или тестирования различных модулей, перед постоянной установкой их на диск. Обратитесь к странице руководства
man pulse-cli-syntax
, для пояснений элементов синтаксиса
client.conf
Это файл настроек, читающийся каждым клиентским приложением PulseAudio. Он используется для настройки опций во время выполнения для отдельных клиентов. Может использоваться чтобы устанавливать и настраивать устройство вывода по умолчанию и для статического запуска, а также позволять (или запрещать) клиентам автоматический запуск сервера, если он в настоящее время не работает.
Команда настроек
Основная команда для настройки сервера во время выполнения является $ pacmd
. Для списка опций выполните $ pacmd --help
, или для входа в интерактивный режим оболочки выполните $ pacmd
и Ctrl+d
для выхода. Все модификации будут сразу применены.
После того, как новые настройки были проверены и удовлетворили Ваши потребности, соответственно отредактируйте default.pa
чтобы изменения стали постоянными. Для некоторых основных настроек, смотрите PulseAudio/Examples.
Важно понять, что "sources" (источники) (процессы, устройства захвата) и доступные "sinks" (устройства вывода/приемники) (звуковые карты, серверы, другие процессы) можно выбрать через PulseAudio, это зависит от текущих аппаратных средств выбранного "Profile" (профиля). Эти "Профили" являются теми ALSA "pcms" перечисленные командой aplay -L
, и более конкретно командой pacmd list-cards
, которая будет включать строку "index:" (индекс), список начинающих "profiles:" (профилей) и строку "active profile: <...>" (активный профиль) на выводе, среди других вещей.
"active profile" (Активный профиль) может быть установлен командой pacmd set-card-profile INDEX PROFILE
без запятой ( ,
) разделяющей INDEX и PROFILE, где INDEX является просто числом на строке "index:" и имя PROFILE является всем показанным с начала любой строки под "профилем": до двоеточия и начала места, как показано командой pacmd list-cards
. Например, pacmd set-card-profile 0 output:analog-stereo+input:analog-stereo
.
"Профиль" проще выбрать с графическим инструментом как pavucontrol
, под вкладкой "Configuration" (Настройка) или Параметрами настройки системы KDE, "Мультимедийные/Аудио и Параметры видео", под вкладкой "Audio Hardware Setup". Каждая аудио "Карта", которая являются теми устройствами, перечисленными командой aplay -l
, или снова командой pacmd list-cards
, будет иметь свой собственный выбор "Профиля". Когда "Профиль" был выбран, то доступные "источники" и "приемники" можно увидеть при помощи команд pacmd list-sources
и pacmd list-sinks
. Обратите внимание на то, что "индекс" доступных источников и приемников изменятся каждый раз, когда изменяется профиль карты.
Выбранный "Профиль" может быть проблемой для некоторых приложений, особенно Adobe Flash Player, обычно /usr/lib/mozilla/plugins/libflashplayer.so
и /usr/lib/PepperFlash/libpepflashplayer.so
. Часто, эти флэш-плееры будут работать только тогда, когда выбран один из профилей Стерео, иначе видео будет проигрываться без звука или просто "откажется" воспроизводиться. Когда все остальное перестало работать, Вы можете попробовать выбрать различные профили.
Конечно, при настройке некоторых вариаций Surround Sound (Объёмного Звука) в PulseAudio, должен быть выбран соответствующий профиль Surround. Прежде чем объёмный звук будет работать, сделайте такие вещи, как переназначение каналов динамиков (speaker channels).
Выполнение
Начиная с версии 7.0 PulseAudio на Arch использует активацию сокета. По умолчанию, pulseaudio.socket
включен для экземпляра systemd/Пользователь.
Для получения дополнительной информации посмотрите PulseAudio: Выполнение.
Запуск вручную
PulseAudio может быть запущен вручную:
$ pulseaudio --start
И остановлен:
$ pulseaudio --kill
Настройка бакэндов
ALSA
Установите pulseaudio-alsa из официальных репозиториев. Этот пакет содержит /etc/asound.conf
необходимый для настройки ALSA с использованием PulseAudio.
Если вы используете систему x86_64, установите lib32-libpulse и lib32-alsa-plugins если хотите получить звук в 32-битных multilib программах, таких как: Wine, Skype и Steam.
Чтобы не допустить приложениям ALSA использовать эмуляцию OSS в обход PulseAudio (тем самым не давая другим приложениям воспроизводить звук), убедитесь, что модуль snd_pcm_oss
не загружается при загрузке. Если в настоящее время загружен (lsmod | grep oss
), отключите его, выполнив:
# rmmod snd_pcm_oss
ALSA/dmix без захвата аппаратного устройства
Вы возможно захотите использовать ALSA непосредственно в большинстве Ваших приложений, при этом елси есть необходимость использовать приложения требующие PulseAudio. Следующие шаги позволяют Вам заставлять PulseAudio использовать dmix вместо того, чтобы "захватывать" устройство ALSA.
- Удалите пакет pulseaudio-alsa, обеспечивающий уровень совместимости между приложениями ALSA и PulseAudio. После этого Ваши приложения ALSA будут использовать ALSA напрямую, без "зацепки" Pulse.
- Отредактируйте
/etc/pulse/default.pa
.
- Найдите и расскоментируйте строки, загружающие драйверы бэкэнда. Добавьте параметры device (устройство) следующим образом. Затем найдите и закомментируйте строки, загружающие модули автоматического обнаружения.
load-module module-alsa-sink device=dmix load-module module-alsa-source device=dsnoop # load-module module-udev-detect # load-module module-detect
- Дополнительно: если Вы используете kdemultimedia-kmix, Вы можете управлять громкостью ALSA, вместо громкости PulseAudio:
$ echo export KMIX_PULSEAUDIO_DISABLE=1 > ~/.kde4/env/kmix_disable_pulse.sh $ chmod +x ~/.kde4/env/kmix_disable_pulse.sh
- Теперь, перезагрузите свой компьютер и попытайтесь запустить одновременно приложения ALSA и PulseAudio. Они оба должны воспроизводить звук одновременно.
- При необходимости используйте pavucontrol для управления звука PulseAudio.
OSS
Есть несколько способов заставить работать OSS-программы через PulseAudio:
ossp
Установите пакет ossp и запустите службу osspd.service
.
Оболочка padsp
Программы использующие OSS могут работать с PulseAudio путем его загрузки с padsp (включенный с PulseAudio):
$ padsp OSSпрограмма
Несколько примеров:
$ padsp aumix $ padsp sox foo.wav -t ossdsp /dev/dsp
Вы можете также добавить пользовательский сценарий оболочки:
/usr/local/bin/OSSProgram
#!/bin/sh exec padsp /usr/bin/OSSprogram "$@"
Убедитесь, что /usr/local/bin
, идёт до /usr/bin
в Вашем PATH.
GStreamer
Установите gst-plugins-good, или gstreamer0.10-good-pluginsAUR, если Ваша программа имеет наследие реализации GStreamer.
OpenAL
Приложение OpenAL должно использовать PulseAudio по умолчанию, но может быть настроено так, чтобы использовать именно его:/etc/openal/alsoft.conf
drivers=pulse, alsa
libao
Отредактируйте файл настроек libao:
/etc/libao.conf
default_driver=pulse
Обязательно удалите опцию alsa драйвера dev=default
или настройте его для определения определенного имени устройства вывода Pulse (sink) или его числа.
Эквалайзер
PulseAudio имеет интегрированную систему эквалайзера с 10 полосами. Для использования эквалайзера, сделайте следующее:
Установите pulseaudio-equalizer:
Загрузка модуля эквалайзера и протокола dbus
$ pactl load-module module-equalizer-sink $ pactl load-module module-dbus-protocol
Графический интерфейс
выполните:
$ qpaeq
Загрузка эквалайзера и модуля DBus при каждой загрузке
Отредактируйте файл /etc/pulse/default.pa
или ~/.config/pulse/default.pa
вашим редактором, и добавьте следующие строки:
### Load the integrated PulseAudio equalizer and D-Bus module load-module module-equalizer-sink load-module module-dbus-protocol
Приложения
QEMU
Аудио драйвер, используемый QEMU, установлен с переменной окружения QEMU_AUDIO_DRV
:
$ export QEMU_AUDIO_DRV=pa
Выполните следующую команду для связывания параметров настроек QEMU с PulseAudio:
$ qemu-system-x86_64 -audio-help | awk '/Name: pa/' RS=
Перечисленные опции могут быть экспортированы как переменные окружения, например:
$ export QEMU_PA_SINK=alsa_output.pci-0000_04_01.0.analog-stereo.monitor $ export QEMU_PA_SOURCE=input
Чтобы получить список поддерживаемых драйверов эмуляции аудио:
$ qemu-system-x86_64 -soundhw help
Для гостевого использования, например, драйвера ac97
, команда с QEMU -soundhw ac97
.
AlsaMixer.app
Сделайте alsamixer.appAUR dockapp для использования pulseaudio windowmaker, например:
$ AlsaMixer.app --device pulse
Вот два примера, где первый - для ALSA, и другой - для pulseaudio. Вы можете запустить несколько его экземпляров. Используйте опцию выбора -w
, кнопок управления для привязки к колесику мышки.
# AlsaMixer.app -3 Mic -1 Master -2 PCM --card 0 -w 1 # AlsaMixer.app --device pulse -1 Capture -2 Master -w 2
XMMS2
Сделайте переключение на вывод pulseaudio
$ nyxmms2 server config output.plugin pulse
и на alsa
$ nyxmms2 server config output.plugin alsa
Для того, чтобы xmms2 использовал другое устройство вывода, например:
$ nyxmms2 server config pulse.sink alsa_output.pci-0000_04_01.0.analog-stereo.monitor
Смотрите также официальное руководство [3].
Рабочая область KDE и Qt4
PulseAudio будет автоматически использоваться приложениями KDE/Qt4. Это поддерживается по умолчанию в микшере звука KDE. Для получения дополнительной информации посмотрите страницу KDE, в wiki PulseAudio. Один полезный совет с той страници: добавить load-module module-device-manager
в /etc/pulse/default.pa
.
Если бэкэнд phonon-gstreamer используется для Phonon, GStreamer должен также быть настроен, как описано в #GStreamer.
Audacious
Audacious изначально поддерживает PulseAudio. Для его использования установите Audacious Настройки -> Audio -> Current output plugin to 'PulseAudio Output Plugin'.
Java/OpenJDK 6
Создайте "обертку" для исполняемой программы Java, использующей padsp, как замечено на странице Java sound with PulseAudio[broken link: invalid section].
Music Player Daemon (MPD)
Настройте MPD на использование PulseAudio. Смотрите также раздел Music Player Daemon/Tips and tricks#PulseAudio.
MPlayer
MPlayer изначально поддерживает вывод PulseAudio с опцией -ao pulse
. Это также может быть настроено для установки по умолчанию на вывод PulseAudio, в ~/.mplayer/config
для конкретного пользователя, или для всей системы /etc/mplayer/mplayer.conf
:
/etc/mplayer/mplayer.conf
ao=pulse
guvcview
guvcview при использовании входа PulseAudio от Веб-камеры, аудиовход может быть в "приостановленном" режиме, в результате чего звук не будет записываться. Вы можете проверить это путем выполнения:
$ pactl list sources
Если источник аудиосигналов "suspended" (приостановлен), измените следующую строку в /etc/pulse/default.pa
, изменение:
load-module module-suspend-on-idle
на
#load-module module-suspend-on-idle
И затем перезапустите PulseAudio или Ваш компьютер. Теперь аудиовход будет "бездействовать", вметсо того, чтобы находиться в "приостановленном" режиме. Теперь guvcview будет писать звук правильно.
Советы и хитрости
Регулировка звука клавиатурой
Обозначьте следующие команды на своих кнопках регулировки громкости: XF86AudioRaiseVolume
, XF86AudioLowerVolume
, XF86AudioMute
Повысить громкость:
sh -c "pactl set-sink-mute 0 false ; pactl set-sink-volume 0 +5%"
Понизить громкость:
sh -c "pactl set-sink-mute 0 false ; pactl -- set-sink-volume 0 -5%"
Отключить/Включить звук:
pactl set-sink-mute 0 toggle
Решение проблем
Смотрите PulseAudio/Troubleshooting.