Каждый раз, когда я хочу использовать Skype, я должен идти в настройках звука. И там, включите аудио вход в « веб-камеру » и снимите флажок « отключить звук ». Это довольно раздражает. Есть ли способ всегда сохранять одну и ту же конфигурацию?
Каждый раз, когда я хочу использовать Skype, я должен идти в настройках звука. И там, включите аудио вход в « веб-камеру » и снимите флажок « отключить звук ». Это довольно раздражает. Есть ли способ всегда сохранять одну и ту же конфигурацию?
Ответы:
При запуске pulseaudio все настройки могут быть определены путем помещения пользовательских файлов конфигурации в скрытый .pulse
каталог в вашем HOME. Если эти файлы еще не существуют, вы можете использовать стандартные файлы /etc/pulse/
в качестве шаблона. Большинство записей содержат подробные объяснения в этих файлах.
~/.pulse/default.pa
загрузить модули и определить значения по умолчанию~/.pulse/client.conf
настроить клиент для звукового сервера~/.pulse/daemon.conf
определить частоты дискретизации и буферыЧтобы сделать веб-камеру источником по умолчанию, нам нужно знать имя и номер этого источника, просматривая список, созданный следующей командой в терминале:
pacmd list-sources
Затем мы редактируем следующую строку ~/.pulse/default.pa
:
set-default-source [name]
и заменить [name]
на имя или номер источника для нужного источника. Затем нам нужно убедиться, что источник включен, добавив эту строку:
set-source-mute [name]|[#n]> 0
Дайте название или индекс вашего источника. Вы можете добавить множество других настроек, на которые есть ссылки в PulseAudio Wiki (теперь на странице man:) man pulse-cli-syntax
.
Перед изменением файлов конфигурации рекомендуется сначала проверить все команды через интерфейс командной строки. Это можно открыть с pacmd
помощью терминала
/etc/pulse/default.pa
. Используйте этот файл или скопируйте его ~/.pulse
перед редактированием.
pacmd list-sources
. Т.е. с моего устройства это было set-default-source alsa_input.usb-0d8c_USB_PnP_Sound_Device-00-Device.analog-mon
.
Я согласен с тем, что проблема в том, что Pulseaudio не устанавливает USB-устройство по умолчанию, поскольку оно отсутствует при запуске импульса.
Так что мое решение - подключиться к системе, которая замечает, когда подключено USB-устройство ... UDEV!
Кстати, эти инструкции немного прикольные, и я предполагаю, что вам удобно делать что-то в командной строке, становиться пользователем root для обновления файлов udev и делать исполняемые скрипты.
Первым шагом является подключение вашей веб-камеры и поиск волшебных поставщиков и номеров продуктов, набрав
lsusb
Я использую Microsoft Lifecam, и она показывает как
Bus 001 Device 013: ID 045e:072d Microsoft Corp.
важная часть 045e: 072d
Затем, когда веб-камера подключена, узнайте имя устройства pulseaudio. Тип
pacmd list-sources
Опять же, я ищу строку, которая начинается, а name:
затем что-то о Microsoft Lifecam ... вот оно
name: <alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono>
так что мое имя устройства pulseaudio будет alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono
Затем я создал новое правило udev, которое срабатывает, когда вставлено USB-устройство с vendor = 045e и product = 072d. Чтобы создать правило, создайте новый файл с именем /etc/udev/rules.d/
SOMETHING.rules
(я назвал мой файл /etc/udev/rules.d/95-webcam-mic.rules
).
Поместите эту строку в файл
SUBSYSTEMS=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="072d", ACTION=="add", GROUP="audio", RUN+="/usr/local/bin/webcam-mic"
Не забудьте заменить ATTR {idVendor} и ATTR {idProduct} значениями для вашей веб-камеры.
Это правило запускает скрипт для установки USB-устройства для ввода, то есть RUN+="/usr/local/bin/webcam-mic"
части.
Быстрый обзор времени. Каждый раз, когда я подключаю свою веб-камеру, я хочу запустить команду
pacmd set-default-source alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono
Но команда должна работать как я (пользователь, запускающий рабочий стол), а udev запускается как пользователь root - поэтому, когда udev запускает мою команду, мне нужно, чтобы она изменилась на моего пользователя, а затем запустите команду.
Итак, у нас есть 2 варианта.
Быстро и грязно . Заставить правило udev выполнить su james -c pacmd set-default-source...
это слишком неправильно. Я даже не могу закончить ввод команды. Что делать, если вы меняете веб-камеры? Что если вы установите это для другого пользователя?
Чуть чище . Запустите скрипт, который считывает файл по умолчанию, в котором есть имя устройства pulseaudio и ваше имя пользователя. Если вы хотите, чтобы файлы были на GitHub. Сначала сценарий /usr/local/bin/webcam-mic
. Файл по умолчанию /etc/default/webcam-mic
просто должен определить 2 переменные оболочки, согласно комментарию в гисте. Поместите скрипт в /usr/local/bin/
и сделайте его исполняемым. Затем поместите в него файл настроек по умолчанию /etc/defaults/
и отредактируйте его так, чтобы использовать ваше имя пользователя и устройство pulseaudio, использованное ранее.
Удачи!
Решение Takkat не работает для меня, вот мое решение для тех, у кого все еще есть проблемы с этим.
У меня было две проблемы с решением Takkat. Во-первых, я понял, что должна быть задержка после запуска, прежде чем произойдет переключение на микрофон (я использую команду 'sleep' в своем решении ниже). Кроме того, команда «set-default-source» работала для включения USB-микрофона, но каким-то образом Skype не распознал это и продолжал использовать внутренний микрофон.
Чтобы это работало, сначала полезно установить pavucontrol. В pavucontrol откройте вкладку «Конфигурация» и посмотрите, что происходит с приведенными ниже командами, чтобы проверить, что все работает как задумано.
Затем из терминала введите:
pacmd
Оттуда введите:
list-cards
В выходных данных найдите индексный номер USB-аудио, который вы хотите (в моем случае это был «1»). Затем взгляните на строки, перечисленные в разделе «Профили» для карты по умолчанию и карты USB. Они должны быть такими же, как те, что перечислены в pavucontrol, и могут быть что-то вроде 'ouput: input + output', 'off' или 'input: analog-mono' и т. Д. Все еще в командной строке pacmd, команда set-card-profile <index number> <profile name>
должна измениться настройки в павуконтроле. Здесь мы хотим переключить внутренний звук с дуплексного режима на выходной, а USB - на вход.
Найдя соответствующие профили, мы хотим создать команду запуска, чтобы изменить несколько параметров сразу после запуска. Чтобы создать команду запуска, откройте тире и найдите «автозагрузка приложений», затем нажмите «добавить», затем введите имя по вашему выбору и соответствующую команду ниже.
После проб и ошибок моя команда запуска в итоге выглядела так:
bash -c "sleep 30 && pacmd set-card-profile 0 output:analog-stereo && pacmd set-card-profile 1 off && pacmd set-card-profile 1 input:analog-mono"
Объяснение: Я обнаружил, что команда 'sleep' была необходима, это означает, что команда выполняется после паузы, которую я установил на 30 секунд (я думаю, что это может быть меньше, поиграйте с этим). Следующая команда (после '&&') должна получить стандартный (внутренний) профиль карты для переключения только с ввода + вывода (дуплекс, по умолчанию) на вывод. Следующая команда для отключения звуковой карты USB (в моем случае это номер «1»). Последняя команда для включения этой же карты в режиме «input: analog-mono»
Возможно, вам придется поиграться с этими настройками, чтобы найти тот, который работает.
Теперь при запуске мой USB-микрофон готов к использованию через 30 секунд, и Skype использует правильный микрофон.
попробуйте это, нажмите на значок динамика на верхней панели, нажмите настройки. там вы можете выбрать вариант ввода по умолчанию для вашего микрофона и, возможно, изменить некоторые настройки оборудования, чтобы все работало нормально.