Linux автоматическое переключение звука

Обновлено: 07.07.2024

Обзор хорошо написан в википедии.
Cводный список основных отличий от Alsa:

PulseAudio — «слой звуковой абстракции», принимающий звуковой поток от приложений и передающий его Alsa; PulseAudio оперирует объектами и позволяет перенаправлять звуковой поток между ними (роутинг); PulseAudio — демон, обычно запускаемый от имени пользователя; Позволяет передавать звук по сети и «расшаривать» микрофоны, установленные на других компьютерах. Теперь при отключении USB-колонки ни одна прога не подвиснет, а будет переброшена на другую доступную карту.

На данный момент (6.08.2012) в репозиториях Ubuntu 12.04 лежит пакет pulseaudio версии 1.1, тем временем уже давно доступна версия 2.0, поэтому если у вас есть какие либо проблемы со звуком, есть смысл попробовать установить более новую версию. Улучшения описаны на официальном сайте(eng).

для восстановления предыдущей версии:

ставим пакет sudo apt-get install paprefs
после установки запускаем от имени простого пользователя,
На закладке Simultaneous output
ставим галку «Add virtual output device for simultaneous output on all local sound cards»

если не поможет попробуйте дополнительно прописать в файле /etc/pulse/daemon.conf следующие настройки.

и снова перезапускаем

Замечено, что чем меньше клиентов у pulseaudio тем лучше он работает, не зависимо от нагрузки процессора.
Поэтому, особенно на слабых процессорах, когда разговариваете по skype рекомендую закрывать других клиентов.
Таким клиентами являются: видео проигрыватель, музыкальный проигрыватель и даже pavucontrol.

Card, Sink & Source

Известно, что у звуковой карты два типа гнёзд: входы (line in, микрофон) и выходы (наушники, line out, S/PDIF). В типовой конфигурации для каждой имеющейся звуковой карты и её «гнёзд» PulseAudio создаёт следующие объекты:

Card. Объект представляет физическую звуковую карту со всеми её входами и выходами; Sink (англ. низина) — «сток», принимающий звуковой поток. Представляет выход звуковой карты: линейный выход, наушники, колонки ноутбука; Source (англ. источник) — источник звука, создающий звуковой поток. Представляет вход звуковой карты: линейный вход, микрофон.

Итак, звук проигрывается через «Sink», а записывается через «Source».

Sink-Input & Source-Output

Итак, медиаплеер создаёт Sink-Input, а Skype — и Sink-Input, и Source-Output.

module, client, sample

В рамках статьи — чисто информационные :)

Module. Загруженный модуль PulseAudio. Например, загрузка module-alsa-sink с заданием пераметров, указывающих на устройство Alsa — создаст Sink, связанный с этим устройством. Существуют и другие модули, создающие объекты PulseAudio, позволяющие управлять им, использовать FIFO для обмена звуковым потоком и многое другое; Client. Приложение, подключившееся к PulseAudio. Может создавать потоки Sink-Input и Source-Output и управлять демоном PulseAudio. Sample. Звуковой сэмпл, загруженный в PulseAudio для быстрого воспроизведения. Может использоваться для проигрывания стандартных звуков. Например, x11 bell. Могут проигрываться по команде от модуля, клиента или из консоли.

ALSA → PulseAudio

Конечно же, сперва нужно убедиться что PulseAudio установлен и запущен:

Далеко не каждое приложение умеет работать с PulseAudio напрямую: обычно они умеют использовать Alsa. Для таких приложений нужно сообщить, чтобы Alsa перенаправляла их звуковые потоки к PulseAudio. Для этого в файл

GUI инструменты

Если Вы читаете эту статью чтобы решить пару нюансов и не вникать — рекомендуется попробовать GUI -tools, описанные на странице PulseAudio. С помощью pavucontrol можно будет быстро выбрать устройство записи «по умолчанию» (Input Devices, кнопка справа «Set as fallback») и Skype будет работать :) Также pavucontrol позволяет управлять громкостью общей и отдельных приложений.

veromix

Многофункциональный микшер для звукового сервера PulseAudio, имеющий Python / GTK и QT (pyqt) графический интерфейс. Позволяет управлять LADSPA плагинами. Установка через Центр приложений Ubuntu или через консоль:


PulseEffects

Удобное Python / GTK графическое приложение для набора PulseAudio эффектов. Множество плагинов в комплекте. Установка через консоль:


Консольные инструменты

pactl

Управление PulseAudio осуществляется с помощью команды pactl, про которую нельзя сказать что она удобная и продвинутая :) однако тренироваться будем с ней.

pacmd

Кроме pactl существует другая утилита для управления PulseAudio: pacmd. Если к PulseAudio подключен модуль module-cli-protocol — создаётся UNIX-сокет на котором висит PulseAudio-shell. Это во многом похоже на telnet. Шелл принимает текстовые команды и исполняет их. pacmd help покажет список доступных команд.
Проблема в том, что pactl умеет не всё, а pacmd не так удобен в использовании. В дальнейшем будем придерживаться pactl, однако если его функционала не хватит — используем pacmd.

patricks

Утилита для управления демоном PulseAudio :)

Дозированная подача информации командой ls: теперь в терминал не будет вываливаться тонна информации (особенно properties) Все объекты — в том числе порты и профайлы — можно задавать как по имени, так и по индексу Команда set sink 0 port next — можно не гадать номер порта и просто переключиться на следующий. Удобно для хоткея. Наличие команды mv sink 0 all для перемещения всех звуковых потоков в нужный Sink (USB-Колонка)

Полакомиться можно на GitHub: ootync/Patricks (файлы скрипта положить куда-нибудь и сделать симлинк на patricks.php)

Обзор

Для начала давайте посмотрим что у нас есть: какие объекты определены в PulseAudio. Рекомендую запустить фоновую музыку чтобы было на что смотреть Команда

Рекомендую присмотреться к полям объектов Sink и Source: по умолчанию они описывают Ваше железо. Покажу свой пример:

Card Profile: маппинг портов звуковой карты

На данный момент нельзя изменить приоритеты, однако можно выбрать тот или иной профиль. Подсматриваем в выводе pactl list имя карты и профиля, и выбираем:

Всё, порты карты переназначены. Можно вообще выключить все разъёмы, выбрав профайл «off»:

Sink Port: переключение звука на наушники

и звук моментально перебрасывается на наушники, отключая колонки.
Аналогично для Source. Возможно, Ваш микрофон не работает в Skype именно из-за того что выбран не тот порт записи :)

Default Sink: звуковой выход по умолчанию

Обратите внимание что pacmd в некоторых случаях позволяет использовать номера вместо длинных имён. Аналогично для Source. Кстати, неверно выбранный default-Source тоже может не давать общаться в Skype :)

Move Sink-Input: перемещение звукового потока

Управление громкостью

Громкость приложений

Приостановка

Sink и Source можно «приостановить»:

Конфиг

Одна из интереснейших возможностей аудиосервера pulseaudio — это передача аудиопотока по сети на удалённые аудиоустройства. В общем случае- это сервер с подключенными колонками.
В результате Вы получаете полностью отвязанный от проводов 1) ноутбук, воспроизводящий звук при просмотре любимых фильмов на большую акустическую систему.
Для прослушивания музыки данный способ не рекомендуется, проще и качественнее использовать mpd на сервере плюс какой любо клиент на ноутбуке.

Настройка клиента

Настройка клиента тривиальна. Раньше для выбора сервера для воспроизведения использовалась утилита padevchooser, теперь этот проект заброшен и ему на смену пришел пакет pasystray.
Для его установки необходимо добавить сторонний PPA ppa:christoph-gysin/pasystray.

Pasystray не запустится, если у вас не запущен avahi-daemon, данная служба необходима, как раз, для сканирования локальной сети на предмет наличия общедоступных сервисов. Поэтому если вы её, по каким либо причинам удаляли, то необходимо установить:


Необходимо добавить запись Pasystray в whitelist панели unity для того, что бы иконка могла отображаться.
С помощью данной утилиты вы можете выбрать сервер pulseaudio, доступный в текущей сети (пункт меню Default Server), и управлять основными его функциями (для этого в меню предусмотрены специальные пункты, и если какие либо из них не доступны, значит в вашей системе не установлены приложения, которые для них требуются) Manager…- запускает paman
Volume Control…- запускает pavucontrol
Volume Meter()…- запускает pavumeter

В стандартных наборах иконок нет иконки для pasystray, поэтому на панели она может выбиваться из общего стиля, для замены необходимо создать символьную ссылку, например так:
Для AwOken

Для Faenza-Ambiance (светлая панель)

Для Faenza-Radiance (темная панель)

Настройка сервера

Нам необходим pulseaudio и модуль, автоматически размещающий данные о наличии аудиосервера в локальной сети через службу Avahi. Создадим группу audio, участники которой имеют право доступа к аудиоустройствам: Добавим себя ещё и в эту группу, для доступа к pulseaudio: Убедимся, что вам доступны аудиоустройства. Эта комманда покажет список доступных устройств в системе.

Для доступа из сети к аудиосерверу раскомментируете три строки и добавьте параметры загрузки модулей module-esound-protocol-tcp и module-native-protocol-tcp:

где 127.0.0.1;192.168.0.0/16 — это сети, в которых будет доступен наш сервер 2) . По умолчанию pulseaudio слушает порт 4317, если вы изменяли настройки iptables, не забудьте его открыть 3) .
С конфигом всё.

Перезагружаем сервер. Если все прошло успешно — то сервер должен появится в pasystray в пункте Default Server у клиента 4) . Теперь можно добавить службу pulseaudio в автозагрузку.
Если у вас на сервере так же работает mpd, то можно сконфигурировать его на использование выхода- pulseaudio, и тогда он будет сам запускать сервер при старте, таким образом в автозагрузку служб можно будет добавить только mpd. Так же плюсом данного способа будет то, что звук в mpd и приложениях, использующих перенаправление звука, будет выровнена громкость.

Использование

Для корректного перенаправления звукового потока необходимо сначала в pasystray, выбрать Default Server <имя_пользователя>@<имя_сервера>, а потом запускать приложение, воспроизводящее звук.

Проблемы

Проверка схемы перенаправления звука

Если у вас возникают какие либо проблемы и вы хотите проверить работоспособность схемы перенаправления звука, то можно запустить любимый плеер, указав явно сервер pulseadio

Avahi-daemon и локальный домен (.local)

Перенесено в статью о Avahi

Звук не перенаправляется

Иногда возникает ситуация 5) , когда avahi-daemon работает, в pasystray указываем вывод через другой сервер, звук пропадает на локальном компьютере, но не появляется на сетевом (в VLC это сопровождается появлением ошибки).
Решение:

Перезапускаем avahi-daemon, для этого нажимаем Alt + F2 и вводим команду gksu service avahi-daemon restart , в появившемся окне вводим пароль; Запускаем pasystray для этого нажимаем Alt + F2 и вводим команду pasystray

По умолчанию в pulseaudio заложено следующее поведение: при переключении пользователя в системе звук воспроизводится только от одного пользователя. Это может показаться неудобным тем, кто хочет слышать музыку, запущенную у одного из пользователей, или звуковые оповещения «фонового» пользователя. Для того, что бы появилась возможность слышать звук от нескольких пользователей одновременно, необходимо:

В конфигурационном файле /etc/default/pulseaudio (в Ubuntu 14.04 эта настройка перенесена в /etc/init.d/pulseaudio) включаем system-mode:

При подключении наушников в порт наушников карты PCI драйвер ALSA в PulseAudio автоматически отключает порт громкоговорителей, и, если у вас в карте нет порта линейного выхода или у него меньший приоритет, то порт вывода звука автоматически переключается на наушники. Но если вы подключаете наушники или микрофон по USB или Bluetooth, то ввод/вывод звука на них автоматически не переключается. Чтобы настроить автоматическое переключение ввода/вывода звука на подключаемое устройство, можно подключить модуль PulseAudio module-switch-on-connect. Он переключает сток/источник по умолчанию в PulseAudio на новый появившийся сток/источник, соответствующий новому подключённому устройству, а также переключает все каналы вывода в сток / вывода из источника, используемые приложениями, со старого стока/источника по умолчанию на новый. Он идёт в стандартной поставке PulseAudio и подключается редактированием файла /etc/pulse/default.pa, в него нужно добавить:

В случае устройства, подключаемого по USB (например, веб-камеры или USB-наушников), альтернативным решением является настройка udev на автоматический запуск скрипта, который переключает в PulseAudio сток/источник по умолчанию и каналы ввода/вывода, при подключении устройства. Для этого нужно создать следующие файлы:

card1 — название подключаемого устройства, которое можно определить по файлу, появляющемуся в /sys/class/sound при подключении устройства. Скрипт запускает другой скрипт в фон, который, в свою очередь, ждёт 5 секунд, пока появится нужный сток/источник, и затем производит переключение. <user> — имя обычного пользователя, которому нужно выполнить переключение (можно эту строчку повторить несколько раз, меняя только имена пользователей, для переключения нескольким пользователям). <sink> — имя стока, соответствующего подключаемому устройству (можно узнать, подключив устройство и выполнив команду pactl list sinks, см. поле name). Если нужно переключить не сток, а источник (подключается не наушники, а микрофон), то вместо set-default-sink <sink> будет set-default-source <source>, имя источника можно узнать из вывода команды pactl list sources.

Пример подключения LADSPA модуля bs2b.
Установить плагин

Далее либо командами в консоли, либо с помощью veromix . Получить имя выхода по-умолчанию.

Например, у меня это alsa_output.pci-0000_00_1b.0.analog-stereo
Установить плагин
pacmd load-module module-ladspa-sink sink_name=[name] master=[default sink] plugin=bs2b label=bs2b control=700,4.5

Установить выход звука через плагин


или это же, но мышкой в настройках звука

Если всё заработало, то можно добавить в настройки /etc/pulse/default.pa
Или копируем /etc/pulse/default.pa в

/.config/pulse/default.pa и вписываем уже в него для применения только для данного пользователя.

Сначала проверим работу фильтра.
Запускаем skype с дополнительной переменной

Вписываем в /etc/pulse/default.pa для автозапуска при старте pulseaudio.
Или копируем /etc/pulse/default.pa в

/.config/pulse/default.pa и вписываем уже в него для применения только для данного пользователя.

В моём случае эта строка выглядит так:

Далее в skype (steam и т.п.) указываем в качестве микрофона новый «Микрофон_с_шумоподавителем».

К сожалению, в текущей версии PulseAudio существует баг, из-за которого этот модуль работает только тогда, когда производится не только запись, но и воспроизведение. Скажем, в Skype, Mumble и прочих голосовых телефонах будет все сразу замечательно, а если вы заходите только записать звук, например, через audacity, то следует включить в нем какую-то музыку фоном, даже с минимальной громкостью. Если вы используете второй способ, убедитесь, что нужная вам программа воспроизводит аудио в sink с шумоподавлением, а не напрямую в аудиокарту. Перенести sink можно, например, через pavucontrol. Не воспроизводите музыку в аудиоплеере через sink с шумоподавлением, а то получите звук в моно и 32кГц.

На данный момент Pulseaudio доработан и при его использовании не возникает особых проблем, но если, всё таки, проблемы есть 6) , то есть смысл попробовать удалить.

Все нижеописанные действия стоит начинать только в случае крайней необходимости! Инструкция подходит для Ubuntu 9.10 / 10.04 / 10.10 / 11.04 / 11.10

Завершаем работу PulseAudio:

Удаляем ненужные пакеты:

Изменяем настройки gstreamer:

Добавляем репозиторий, содержащий изменённый апплет громкости и пакеты, для нормальной работы без PulseAudio:

Обновляем списки репозиториев и обновляем пакеты:

Теперь нужно добавить новый апплет звука на панель. Для этого жмём правой кнопкой мыши на панели → Добавить на панель… → в списке выбираем Регулятор громкости.

В GNOME Classic из Ubuntu 11.10 требуется зажать Alt и нажать правую кнопку мыши для того, чтобы появился пункт Добавить на панель…

Апплет для Unity

Так как в Unity нет привычной панели с апплетами, нужно установить другой регулятор громкости, к примеру: volti. Для установки, скачайте и установите deb пакет последней версии. Необходимо добавить запись Volti в whitelist панели unity для того, что бы иконка могла отображаться.

Восстановление

Если возникли проблемы и звука теперь вообще нет, или что то не работает - можно легко вернуть все обратно.

Если вы хотите получить фантазию, вы можете создать скрипт cron для автоматического нажатия / вытаскивания изменений так часто, всегда сохраняя свои файлы в актуальном состоянии. Пока вы не работаете на двух машинах одновременно, вы никогда не должны сталкиваться с конфликтами слияния.

Для изменения устройства аудиовыхода по умолчанию из командной строки можно использовать pacmd Импульсная Аудио утилита командной строки.

Я нашел потребность сделать так же сегодня, желая переключиться между наушниками и динамиками, оба включили отдельные звуковые карты. Вот сценарий оболочки, который я записал, чтобы сделать так:

  • Это подкачивает между первыми двумя устройствами аудиовыхода что pacmd служебные списки. Если Вы будете иметь больше чем два аудиоустройства и захотите подкачать к другому, то необходимо будет заменить логику на строке 7 с некоторыми условными выражениями.
  • Просто свопинг устройства приемника по умолчанию ничего не делает для приложений, в настоящее время работающих — они продолжат производить к предыдущему устройству. Этот сценарий также перемещает место назначения приемника для всех существующих исходных данных. Т.е. если Вы запустите этот скрипт с музыкой, играющей на одном устройстве, то это немедленно подкачает к другому. Если Вы хотели бы, чтобы существующие приложения продолжили предыдущее устройство, прокомментировали последнюю строку (и строка 5, если Вы хотели бы).

Ну, вы можете установить pavucontrol , он показывает приложения с выбором звукового устройства на первой вкладке, это сэкономит вам некоторые усилия. Но то, что вы действительно хотите, я думаю, это пометить гарнитуру USB как устройство по умолчанию, тогда каждый раз, когда вы подключите ее, весь звук будет перенаправлен на нее, а когда вы подключите ее - она ​​вернется к динамикам. Легко, правда.

Вопрос довольно старый, но мой ответ все еще может быть полезен для пользователей GNOME 2. Я использовал PulseAudio Mixer Applet для точной задачи, описанной здесь. Вы можете изменить устройства ввода и вывода прямо в меню панели. Это самый удобный способ, который я нашел.

Спасибо за сценарии! Я добавил часть для ввода (микрофон), а также на тот случай, если кто-то захочет его использовать:

Чтобы прокрутить список звуковых устройств, используйте следующий скрипт:

Все кредиты поступают в цветан с форума Ubuntu .

У меня была такая же проблема, и я написал небольшой апплет для индикатора для рабочего стола Ubuntu Unity:

Требуются pacmd и xdotool

Конечно, переключение устройств с помощью апплета также работает нормально. Но самое классное в написании сценария - это то, что он очень быстрый. Я поставил мой, например, на сочетание клавиш alt + s. таким образом, когда я хочу переключиться с наушников на динамики, мне нужно всего лишь нажать alt + s.

Во всяком случае. Эндрю сказал:

Если у вас более двух аудиоустройств и вы хотите переключиться на другое, вам нужно заменить логику в строке 7 на некоторые условия.

Это то, что я сделал. Я делюсь этим, на случай, если у кого-то с этим возникнут проблемы:

То, что я сделал по-другому, это: а) найти активный приемник в цикле for. И б) переключиться на следующий приемник, увеличив индекс на 1. Затем я делаю результат по количеству приемников. Это гарантирует, что, например, при наличии 3 стоков, (2 + 1)% 3 = 0. Таким образом, с индекса приемника 2 мы бы переключились на индекс приемника 0.

Таким образом, переключатель позволяет перемещаться вверх через доступные раковины.

Когда я подключаю наушники, устройство вывода звука переключается на наушники из моих динамиков.

Вместо того, чтобы постоянно подключать / отключать наушники, что в конечном итоге приведет к износу моего шнура / гнезда, я хотел бы просто использовать программный переключатель.

Когда я открываю "Настройки звука" и переключаюсь с "Наушники -> Встроенный звук" на "Линейный выход -> Встроенный звук", из динамика или наушников не выходит звук.

Я открыл alsamixer, чтобы посмотреть, что происходит, когда я подключаю / отключаю наушники.


Выход на наушники:

Когда наушники подключены, я вручную изменил все настройки, чтобы они соответствовали настройкам, когда наушники не подключены, и через динамик не было слышно ни звука.

Как примечание, изменение устройства вывода звука через "Настройки звука" вызывает те же изменения в alsamixer.

Чтобы можно было переключаться между динамиками и наушниками, выполните следующие действия:

  1. Бежать alsamixer ,
  2. При необходимости выберите свою звуковую карту с помощью F6 .
  3. Перейдите к "Auto-Mute" с помощью стрелки вправо → .
  4. Отключите его с помощью стрелки вниз ↓ .
  5. Нажмите Esc для выхода.

Или вы можете сделать все эти шаги с помощью одной команды:

  1. Открытый терминал
  2. бежать amixer -c 1 set 'Auto-Mute Mode' Disabled

Теперь вы можете переключаться между динамиками и наушниками с помощью регулятора громкости PulseAudio.

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

По замыслу Pulseaudio автоматически отключает линейный выход при подключении наушников и использует вместо этого слайдер для наушников. Вы можете наблюдать это поведение в alsamixer. Мы хотим, чтобы слайдеры для наушников и линейного выхода работали отдельно и одновременно. Это очень полезно, если вы хотите переназначить гнезда Realtek, чтобы иметь, скажем, Rear Green для наушников и Blue для динамиков (с помощью hdajackretask от alsa-tools).

Чтобы достичь этого, вы должны непосредственно отредактировать конфигурацию пульсометра.

1. Мы сообщаем pulseaudio, что наушники всегда подключены.

+ Изменить no в yes ,

Если вы используете гнезда на передней панели корпуса компьютера, смените [Jack Front Headphone] вместо.

2. По умолчанию громкость линейного выхода контролируется только мастером, а не самим ползунком линейного выхода.

Мы хотим объединить Line Out с Мастером. Добавьте этот фрагмент в конец файла:

3. Нам нужно полностью отключить Line Out, когда мы используем наушники.

Добавьте этот фрагмент в конец файла:

В некоторых системах вам также может потребоваться отключить Front, добавив этот фрагмент:

4. Как и Pulseaudio, Alsa сама отключает динамики при подключении наушников.

Откройте alsamixer: alsamixer -c0 или же alsamixer -c1

Используйте ← / → для автоматического отключения звука. Отключить режим автоматического отключения звука с помощью ↓ . Закройте alsamixer с помощью Esc .

Сохраните ваши изменения с: alsactl store

5. Перезапустите Pulseaudio

Теперь у вас есть два отдельных порта на одном приемнике в pulseaudio. Они приглушают друг друга, поэтому вы можете переключиться на наушники, и это отключит линейный выход, и наоборот. Для переключения между портами вы можете использовать звуковой микшер Gnome или Plasma или установить соответствующее расширение рабочего стола.

hdajackretask - это инструмент для переназначения функции, которую ваши гнезда используют для другого входа, выхода или отключения - например, превратить ваш микрофонный разъем в дополнительные наушники или почему бы не сделать их одновременно линейными выходами и подключить их к ресиверу объемного звучания?

Бежать hdajackretask Затем, чтобы переопределить одно из ваших гнезд:

  1. Выберите кодек
  2. Установите флажок "Переопределить" для этого вывода и выберите новую нужную функцию.
  3. Нажмите "Применить сейчас"

Примечание. Если разъем для наушников имеет встроенный аппаратный переключатель, который перенаправляет звук, то вы SOL (извините, не повезло). Однако, если ОС обнаруживает, когда линия подключена к разъему для наушников, скорее всего, звук не переключается механически.

Я обнаружил, что одновременная работа с наушниками и динамиками работает лучше всего.


Скриншот hdajackretask для переключения наушников на динамики:


После того, как вы нажмете "Применить сейчас", будет создан сценарий оболочки для внесения изменений и запрос на ввод пароля суперпользователя. Скрипт также сохраняется в /tmp который может быть скопирован и позже выполнен с помощью sudo из командной строки.


Как упоминалось ранее, hdajackretask создает скрипт, script.sh в /tmp похожий на /tmp/hda-jack-retask-QW1EEZ/ для функций домкрата вы хотите:


Скопируйте этот скрипт куда-нибудь в вашей системе (кроме / tmp)

Затем отредактируйте speaker.sh

Добавьте строку killall pulseaudio & в верхней части файла. Это необходимо, потому что функция гнезда не может быть изменена во время pulseaudio бежит. По умолчанию pulseaudio возродится. Также измените путь к errors.log подать в /tmp или где угодно


Чтобы запустить скрипт:

Большинство звуковых карт HDA Intel в некоторой степени поддерживают повторную настройку, то есть могут использоваться для нескольких целей. Этот инструмент представляет собой графический интерфейс, который упрощает повторное подключение ваших гнезд - например, превратите ваш микрофонный разъем в дополнительные наушники или почему бы не сделать их одновременно линейными выходами и подключить их к ресиверу объемного звучания?

Запустите приложение "hdajackretask" из командной строки. Выберите кодек в верхней панели; у некоторых людей есть только один - если у вас их больше одного, один является "основным", а остальные, вероятно, являются кодеками HDMI.

Все разъемы (и другие входы / выходы) отображаются в разделе "Конфигурация контактов". Чтобы переопределить одно из ваших гнезд, установите флажок "Переопределить" для этого контакта и выберите нужную функцию. Примечание. Если вы выбрали переопределение "Line out (back)", вы также должны иметь переопределение "Line out (front)". Переопределение "Line out (Center/LFE)" будет работать только с двумя предыдущими переопределениями и т. Д.

Вы можете опробовать новую конфигурацию, нажав "Применить сейчас". Чтобы сделать вашу новую конфигурацию загрузочной по умолчанию, нажмите "Установить загрузочное переопределение". Выполнение любого из этих действий требует привилегий суперпользователя, поэтому вам, вероятно, будет предложен ваш пароль.

Если это так, будь счастлив, поделись радостью, сделай что-нибудь приятное!

Если этого не произошло, вот несколько вещей, которые можно попробовать:

Зайдите в alsamixer и посмотрите, есть ли новые регуляторы громкости, и посмотрите, не включены ли они и установлены ли разумные значения.

Смотрите опцию "модель = авто" ниже

Если это не помогает, велика вероятность того, что вы столкнетесь с драйверами или аппаратными ограничениями. Вы можете столкнуться с ошибками в драйвере (возможно, никто не тестировал четыре наушника раньше!). Если вы это сделаете, не стесняйтесь сообщать о них в списке рассылки alsa-devel: однако, из-за нехватки рабочей силы, есть вероятность, что это будет решено с очень низким приоритетом (наличие стандартной работы звука для стандартной конфигурации важнее, чем поддержка странных конфигураций). Однако, если вы являетесь хакером ядра и придумали патч, который решает вашу проблему, не привлекая ничего другого, шансы довольно высоки, он будет объединен.

Показать неподключенные контакты Ваш BIOS отвечает за настройку того, какие контакты на кодеке действительно подключены к чему-либо, а какие нет. Иногда BIOS глючит и не показывает все ваши гнезда. Если у вас есть разъем, в BIOS которого нет, попробуйте включить случайные контакты и посмотреть, работает ли он.

Set Model = auto. Некоторые кодеки, особенно старые и в ядрах 3.8 и ниже, жестко запрограммированы для использования конкретной модели и, таким образом, не будут заботиться о ваших переопределениях. Во многих случаях и с достаточно новым ядром автоматический парсер теперь работает хорошо и для этих кодеков. Вы можете принудительно использовать автоматический анализатор, установив этот флажок. В некоторых случаях, однако, явная модель существует по причине, если так, вы застряли.

Звук в системе - вещь очень необходимая. Вы можете захотеть послушать музыку, посмотреть фильм, пообщаться с друзьями через голосовую связь или видеочат. Для всего этого вам нужно будет, чтобы система поддерживала работу со звуком. И не менее важно, чтобы звук воспроизводился хорошо.

В этой статье мы не будем рассматривать установку драйверов или выполнить настройку звука linux по умолчанию. Мы будем говорить о комфортном управлении звуком. О том, как заставить звуковую систему работать лучше, чтобы получаемый звук соответствовал вашим желаниям.

Как работает аудио в Linux

Если не вдаваться в подробности, то вот небольшая схема того, как будет работать звук в Linux:


Здесь есть источник и есть цель. Что-то создает звук, что-то должно его получить и обработать, а затем, наконец, воспроизвести. Для большинства повседневных задач мы используем обычные приложения, например, VLC для генерации звука и колонки или наушники для воспроизведения.

В обратном порядке то же самое. Устройство, например, микрофон, генерирует звук, а затем отправляет его приложению, например, Jitsi или Skype. Модель всегда работает похожим образом. Но между этими двумя точками существует звуковая подсистема Linux.

Если не углубляться в историю, для управления звуком linux использовалась Advanced Linux Sound Architecture (ALSA). Если быть точным, то она и сейчас используется. Но в современных дистрибутивах настройка звука в linux выполняется без непосредственной настройки ALSA пользователем. Вместо этого применяются инструменты более высокого уровня - PulseAudio.

Почему именно PulseAudio?

Почему Pulse так необходим? Это не так. ALSA работает настолько хорошо, что многие дистрибутивы только сейчас начинают интегрировать Pulse по умолчанию. Тем не менее работа с ALSA может потребовать многих часов ручной настройки.

И здесь мы не говорим о настройке по умолчанию. Дополнительная настройка звука alsa может привести к созданию запутанных конфигурационных файлов и скриптов, поэтому вам будет сложно создать единственную конфигурацию на все случаи жизни. Проблема не всегда в ALSA, иногда причиной стает само приложение, но это не меняет конечный результат.

Сейчас мы требуем от нашего компьютера намного больше чем раньше. Раньше аудиовыход подключался к наушникам или колонкам и все. Сейчас же часто необходимо подключать компьютер к пучковой аудиосистеме, телевизору и получать звук с микрофона по Bluetooth.

PulseAudio позволяет все это настроить просто и быстро, а вам только останется убедиться, что все работает правильно. Также здесь добавляется несколько дополнительных полезных функций. Например, возможность передавать аудио на другой компьютер изменение форматов и каналов.

Настройка Pulse

Чтобы настроить воспроизведение звука с помощью Pulse вам понадобится выполнить три вещи:

  • Проверьте соединения, как физические, так и виртуальные;
  • Подключите звуковой выход или вход к источнику звука;
  • Управляйте целями с помощью Pulse Audio Control (pavucontrol).

Шаг 1. Проверьте оборудование

Проверьте кабели. Проверьте ручку громкости. Проверьте кнопки отключения звука и кнопки питания. Вы даже можете выключить аудиоустройство и снова включить.

Признайте это. Вы хоть раз оставляли подключенными наушники, забывали ввести пароль к колонкам или пытались включить звук с выключенной громкостью. Вы тратили много времени на настройку звука linux, а проблема была совсем не там. Поэтому лучше сразу убедиться что физическая составляющая в порядке. Так дополнительная настройка PulseAudio будет проще.

Шаг 2. Проверьте ваше приложение

Точно так же проверьте настройки вашей программы. Не во всем программах есть много опций, но, например, в VLC можно настроить громкость воспроизведения и драйвер, с помощью которого будет воспроизводиться звук:


В приложении Google Hangouts настройки более упрощены:


Вам нужно убедиться, что приложение отправляет звук правильной подсистеме. Если сомневаетесь, лучше передать звук Pulse:

  • Отправьте звук Pulse и сможете управлять его воспроизведением динамически с помощью панели управления Pulse;
  • Если хотите получить ручной контроль - отправьте звук напрямую в ALSA. Это может понадобиться если вы используете такие профессиональные JACK или Patchage. Им нужно иметь полный контроль над маршрутизацией звука.

У Pulse есть плагин для ALSA поэтому даже если вы направите звук в ALSA, вы все равно сможете управлять им с помощью Pulse. Сигнал не будет перехвачен, так что об этом можно не беспокоиться.

Шаг 3. Настройка звука в pavucontrol

С помощью панели управления звуком PulseAudio или pavucontrol вы можете выполнять все необходимые действия. По умолчанию она находится в настройках Gnome, но может быть установлена отдельно. Для KDE утилита будет называться pavucontrol-qt.

Вы можете использовать pavucontrol чтобы настроить громкость звука и маршрутизацию на вашем компьютере. Возможно, вы ею уже пользуетесь ежедневно, но не знаете что это настройка pulseaudio. Когда вы регулируете громкость в своем окружении рабочего стола, вы используете те же инструменты.

Панель управления состоит из пяти вкладок:

  • Конфигурация - настройка звуковых карт. Она не используется часто, один раз устанавливаете нужные значения и забываете;
  • Устройства ввода - доступные устройства ввода, что-то, что может генерировать звук, например, микрофон или веб-камера;
  • Устройства вывода - доступные устройства вывода, такие как колонки или наушники, а также USB гарнитуры;
  • Запись - активные сеансы записи, например, браузер ищет аудиовход для чата или программа для записи, например, Audacity.
  • Проигрывание - активный поток звука, которые воспроизводится в данный момент. Вы можете менять громкость для одного или для двух каналов по отдельности для каждого приложения.


Важно заметить, что панель динамическая, и она не будет отображать программ если они сейчас не играют или не записывают звук.

Шаг 4. Маршрутизация звука в Pulse

Вы можете выбрать на какое устройство будет передаваться ваш звук с помощью Pulse. Настройка звука Pulseaudio выполняется очень просто. Например, попробуйте что-то простое. Включите какую-либо музыку, затем перейдите на вкладку конфигурация.

Здесь обратите внимание, что для каждого устройства выбран профиль работы, например, у меня для встроенного аудио используется аналоговый сетреодуплекс. Если вы измените его на что-то другое музыка затихнет. Она продолжит воспроизводиться, но мы ее не будем слышать.


Вы можете видеть, что здесь, кроме аудиовыходов есть HDMI. После установки новой видеокарты, она может перехватить приоритет вывода у звуковой. Но вы уже знаете куда смотреть. В остальных же случаях параметры не изменятся пока вы их сами не измените.

Теперь давайте предпримем что-то более сложное, например, запишем воспроизводимый звук в файл. Откройте Audacity и в настройках выберите источник звука Pulse. Иногда может быть Default Line:0


Затем начните запись, вы увидите что пишите тишину:


Дальше вернитесь к панели управления Pulse, перейдите на вкладку Запись и выберите источник для Audacity вместо Встроенное аудио - Monitor Встроенное аудио, дальше вы увидите как началась запись:



Таким образом, вы можете перенаправлять звук для приложений. Многие проблемы со звуком возникают из-за того, что система использует не то аудиоустройство по умолчанию. Возможно, ваша USB камера не установлена как стандартный аудиовход. В таком случае вы просто не получите звука.

То же самое верно для аудио. Если вы смотрите фильм и не слышите звук, проверьте Pulse. Возможно, он отправляется на неактивное устройство или громкость отключена.

Выводы

На компьютерах всегда были проблемы со звуком. Звуковым устройствам нужны драйвера, операционной системе нужно обнаружить их и управлять, а пользователь должен понимать как работают элементы управления. Мы рассмотрели как выполняется настройка звука в Linux. И да, это 2017 и Linux может воспроизводить звук. И даже больше, он может управлять звуком. Надеюсь, эта информация была полезна для вас.

Читайте также: