Home Wiki > PulseAudio
Sign up | Login

PulseAudio

tagline: Материал из openSUSE

PulseAudio — сетевой звуковой сервер, позволяющий программное сведение аудиопотоков. За подробностями обращайтесь к веб-сайту PulseAudio.

Общие сведения

PulseAudio обеспечивает:

  • Программное сведение нескольких аудиопотоков с обходом любых ограничений, накладываемых оборудованием.
  • Сетевую прозрачность, позволяющую приложению, работающему на одной машине, проигрывать или записывать аудио, запущенное на другой.
  • Абстракцию звукового программного интерфейса, снижающую потребность во множестве бэкэндов в приложениях ради подержки ими широкого спектра звуковых систем.
  • Общую аппаратную абстракцию, предоставляющую возможность осуществления таких вещей, как индивидуальные уровни громкости у приложений.

PulseAudio поставляется с множеством подключаемых модулей. Все аудио от/к клиентов/-ам и аудиоинтерфейсов/-ам проходят через модули. Клиенты PulseAudio могут отправлять аудио на «приёмники» и принимать аудио из «источников». Клиентом может быть GStreamer, xinelib, MPlayer или любое другое аудиоприложение. Только драйверы устройств/аудиоинтерфейсов могут быть либо источниками, либо приёмниками (они обычно являются аппаратными входами и выходами).

Конфигурация

Начиная с openSUSE 11.0 pulseaudio используется для установок с рабочим окружением GNOME. По умолчанию демон автоматически запускается, если приложение пытается использовать pulseaudio. Это превращает его в источник проблем в силу широты диапазона звуковых систем/приложений, используемых в мультимедийных приложениях. Поэтому столкнувшись с проблемами у PulseAudio, прежде, чем сообщать о них нам на Bugzilla, убедитесь, что вы прочли эту заметку о тщательной настройке PulseAudio. Она содержит информацию о том, как заставить все доступные звуковые системы выводить звук через PulseAudio.

Пакеты

Установка GNOME включает в себя все необходимые инструменты и пакеты по умолчанию. В других окружениях pulseaudio часто устанавливается по зависимостям, но без средств управления. Поэтому для управления демоном pulseaudio может потребоваться вручную установить следующие пакеты:

  • pavucontrol — регулирование уровня громкости PulseAudio
  • paprefs — настройки PulseAudio
  • pulseaudio-utils — утилиты PulseAudio
  • padevchooser — выбор устройств PulseAudio
  • paman — менеджер PulseAudio
  • alsa-plugins-pulse (-32bit) — подключаемый модуль PulseAudio для библиотеки ALSA

Использование Pulseaudio как бэкэнда ALSA по умолчанию

Чтобы все приложения, поддерживающие ALSA, но не поддерживающие pulseaudio, воспроизводили звук через pulseaudio, вам требуется установить пакет alsa-plugins-pulse (в том числе пакет -32bit, если у вас 64-битная платформа) и задать следующую переменную окружения:

export ALSA_CONFIG_PATH=/etc/alsa-pulse.conf

В сеансе GNOME эта переменная задаётся по умолчанию. Если вы желаете сделать эту переменную окружения общесистемной, вставьте вышеприведённую строчку в /etc/environment (включая команду export).

openSUSE 11.2, KDE 4.2

PulseAudio не используется как звуковой сервер по умолчанию. Выполните от имени root´а:

setup-pulseaudio --enable

чтобы сделать его сервером по умолчанию. Если вы наоборот хотите отключить pulseaudio совсем и откатиться к ALSA для всех приложений GNOME, пожалуйста прочтите ниже раздел «Полное отключение pulseaudio (откат к ALSA)».

Отключение модуля OSS

Некоторые приложения, использующие аудиовывод OSS, не будучи корректно сконфигурированы, могут прерывать pulseaudio так, что pulseaudio не может присоединиться к аппаратному устройству вывода. Это можно предотвратить, запустив

rmmod snd-pcm-oss

и затем добавив blacklist snd-pcm-oss в файл /etc/modprobe.d/50-blacklist.conf . (Взято из ArchLinux wiki).

Отключение автозапуска Pulseaudio

Из-за зависимостей часто оказывается невозможным удалить pulseaudio полностью. Чтобы предотвратить использование pulseaudio, следует отключить автоматический запуск демона, задав autospawn = no в /etc/pulse/client.conf

Проблемы

Отсутствует звук после установки

Известны случаи, когда звук отключён по умолчанию, и это не отражается в микшере KDE. Для исправления этого запустите padevchooser (возможно вам потребуется установить его), щёлкните его пиктограмму в лотке и выберите «Регулирование громкости». Убедитесь, что ничего не отключено, даже после того, как вы запустили воспроизведение звука через приложение (это приложение должно отображаться во вкладке «Воспроизводится»).

Если звук по-прежнему не работает или инструменты pulseaudio не действуют, постарайтесь добавить своего пользователя в группы "pulse" и "pulse-access" (Yast > Управление пользователями и группами > [выбрать пользователя] > Править > Подробнее > Дополнительные группы). Чтобы эффект возымел действие, вам потребуется выйти и снова войти в систему.

Звук 5.1

Существовали проблемы получения работающего звука 5.1 «из коробки», за подробной информацией обращайтесь на bug 381686. У многих людей есть звуковые карты с поддержкой объёмного звука (surround), но при этом осуществляется вывод только двух каналов, поэтому эта настройка не может быть включена в PulseAudio по умолчанию. Чтобы задействовать все каналы, отредактируйте файл /etc/pulse/daemon.conf: раскомментируйте строку default-sample-channels (то есть удалите точку с запятой в начале строки) и задайте значение 6, если конфигурация вашей аудио система 5.1, или 8 если 7.1 и так далее. Либо, что ещё проще, вы можете запустить paprefs и произвести настройку динамиков через графический пользовательский интерфейс.

paprefs-speaker-setup.png

Неполадки при воспроизведении аудио

Отредактируйте /etc/pulse/daemon.conf: раскомментируйте строки default-fragments и default-fragment-size-msec, и измените их значения с умолчательных 4 и 25 на 16 и 21.

Пожалуйста, сообщите на bug 381686, сработало это у вас или нет.

Возвращение на esound

Удалите все пакеты pulseaudio* и установите esound.

Трескучий звук с OpenAL (игры)

Подключаемый модуль alsa, принуждающий приложения использовать pulseaudio, часто приводит к низкому качеству звука в играх, использующих OpenAL для вывода звука. До openSUSE 11.1 включительно openal-soft не поддерживал pulseaudio нативно. Для исправления звука в играх либо откажитесь от pulseaudio, либо установите бэкпорт из Factory

Полное отключение pulseaudio (откат к ALSA)

Под openSUSE 11.2 pulseaudio является предпочитаемой аудиоподсистемой для всех приложений GNOME. Это может приводить к различным проблемам сосуществования, особенно по отношению к phonon, звуковой подсистеме KDE, использующей ALSA. Весьма типичный симптом — неспособность аудио ALSA вести планирование в реальном времени (или, точнее, близком к реальному времени), в итоге вызывающая задержки и/или обрывы в звучании. Многие обнаружили, что полное отключение pulseaudio и, таким образом, перевод приложений GNOME на использование ALSA, сработало успешно. Для выполнения этого проделайте следующее:

  • Отключите pulseaudio:
setup-pulseaudio --disable
  • Удалите все пакеты pulseaudio кроме libpulse-mainloop-glib0 и libpulse0, так как они требуются всем приложениям GNOME (поскольку они по умолчанию компилируются с pulseaudio).
  • Скройте библиотеки, предоставляемые пакетами libpulse-mainloop-glib0 и libpulse0, чтобы заставить приложения GNOME откатиться к ALSA. Для этого передвиньте их, отдав следующие команды от имени root´а (подразумевается openSUSE 11.2 x86_64):
cd /usr/lib64

md HIDDEN mv *pulse* HIDDEN

ldconfig

Заметьте, что под $HOME/.pulse у вас есть правильно настроенные конфигурационные файлы (например с того времени, когда pulseaudio был задействован), последний из вышеописанных шагов по скрыванию библиотек pulseaudio может не потребоваться. Однако если вы случайно (или намеренно) удалите $HOME/.pulse, приложения GNOME вновь потеряют звук. Независимо от содержимого /etc/asound.conf перемещение библиотек является единственным гарантированным методом принудительного отката на ALSA.

  • Используйте совместимый с ALSA микшер (например kmix под KDE или alsamixer в терминале) и убедитесь, что все интересующие вас каналы не отключены.

Заметьте, что это обходной путь, а не определённое решение: если пакет libpulse-mainloop-glib0 и/или libpulse0 обновлён, вам придётся снова отдать вышеуказанные команды, чтобы передвинуть библиотеки pulseaudio.

Также смотрите

Внешние ссылки