Я согласен с тем, что проблема в том, что Pulseaudio не устанавливает USB-устройство по умолчанию, потому что его нет при запуске импульса.
Суть моего решения заключается в подключении к системе, которая замечает, когда USB-устройство подключено ... UDEV!
BTW, эти инструкции слегка фанки, и я предполагаю, что вам удобно делать вещи в командной строке и стать пользователем root для обновления файлов udev,
Первый шаг - подключить веб-камеру и найти номера волшебных продавцов и продуктов на typing
lsusb
Я использую Microsoft Lifecam, и он отображается как
Bus 001 Device 013: ID 045e:072d Microsoft Corp.
. Важная часть делает
Затем, пока веб-камера подключена, узнайте имя устройства 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 с продавцом = 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"
Не забудьте заменить SOMETHING и ATTR {idProduct} на значения для вашей веб-камеры. [!d18 ]
Что это за правило, это запустить скрипт для установки устройства usb для ввода, то есть RUN+="/usr/local/bin/webcam-mic".
Quick обзор время. Каждый раз, когда я подключаю свою веб-камеру, я хочу запустить команду
pacmd set-default-source alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono
. Но команда должна запускаться как ATTR {idProduct} (пользователь работает на рабочем столе), но 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 раньше.Удачи!