Як мій аудіовхід завжди може бути мікрофоном веб-камери?


14

Кожен раз, коли мені хочеться скористатися Skype, я повинен переходити до налаштувань звуку. А там увімкніть аудіовхід на " веб-камеру " і зніміть галочку " відключити звук ". Це досить дратує. Чи є спосіб завжди зберігати однакову конфігурацію?


1
У мене є ця проблема і з logitech quickacam. Після кожного перезавантаження я повинен пройти через налаштування та скинути його як вхід за замовчуванням для того, щоб він працював. Я думаю, це має щось спільне з тим, що usb-пристрої завантажуються після встановлення налаштувань звуку, щоб імпульс або alsa не «бачили» мікрофон usb. На жаль, оскільки "проблема" насправді не є просто незручністю, це не так важливо, що я хочу засунути рукави сорочки і почати копати та редагувати через конфігураційні файли.

Відповіді:


14

Зміна налаштувань PulseAudio за замовчуванням

Під час запуску pulseaudio всі параметри можна визначити, помістивши власні файли конфігурації у прихований .pulseкаталог у вашій ГОЛОВНІЙ. Якщо цих файлів ще немає, ви можете використовувати стандартні файли /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 pulse-cli-syntax.

Рекомендується спочатку протестувати всі команди через інтерфейс командного рядка перед зміною файлів конфігурації. Це можна відкрити pacmd в терміналі


У моїй папці .pulse немає default.pa. Чи слід створити новий файл з одним рядком: set-default-source x?
Зробити

3
@ToДодати налаштування за замовчуванням /etc/pulse/default.pa. Використовуйте цей файл або скопіюйте його до ~/.pulseредагування.
Таккат

Для повноти: треба записати як вхідний пристрій назву речі, яка записана всередині кутових дужок виводу pacmd list-sources. Тобто для мого пристрою це було set-default-source alsa_input.usb-0d8c_USB_PnP_Sound_Device-00-Device.analog-mon.
Привіт-Ангел

@ Привіт-Ангел: дякую за це - відповідь надійшла від набагато старшої версії pulseaudio. Тепер ми можемо використовувати власну назву мийки.
Таккат

6

Я погоджуюся, що проблема полягає в тому, що Pulseaudio не встановлює USB-пристрій за замовчуванням, оскільки його немає під час запуску імпульсу.

Тож моє рішення для цього полягає в підключенні до системи, яка помічає, коли підключено USB-пристрій ... UDEV!

До речі, ці вказівки трохи прикольні, і я припускаю, що вам зручно робити речі в командному рядку і ставати кореневим користувачем для оновлення файлів udev та створення скриптів виконуваним.

Спочатку з’ясуйте речі

Ідентифікатор USB

Першим кроком є ​​підключення веб-камери та пошук чарівного постачальника та номерів продуктів, набравши текст

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>

тому ім'я мого імпульсного аудіо буде alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono

Правила UDEV

Тоді я створив нове правило 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"

Не забудьте замінити 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 варіанти.

  1. Швидкий і брудний . Примусьте правило udev запустити su james -c pacmd set-default-source... це так невірно, я навіть не можу закінчити введення команди. Що робити, якщо змінити веб-камери? Що робити, якщо встановити це для іншого користувача?

  2. Трохи чистіше . Запустіть скрипт, який читає файл за замовчуванням, який містить ім'я імпульсного пристрою та ім'я користувача. Якщо ви хочете, щоб файли вони знаходилися на GitHub. Спочатку сценарій /usr/local/bin/webcam-mic. Файл за замовчуванням /etc/default/webcam-micпросто повинен визначити 2 змінних оболонки, відповідно до коментаря в суті. Покладіть сценарій /usr/local/bin/і зробіть його виконуваним. Потім вставте файл за замовчуванням /etc/defaults/і відредагуйте його, щоб використовувати ваше ім'я користувача та імпульсний пристрій з попереднього.

Удачі!


Будь-який шанс ви знову можете завантажити ці сценарії; вони, здається, зникли з пастебіну?
ej159

Я вклав сценарій в суть на GitHub і оновив відповідь.
Джеймс Мітчелл

2

Рішення від Takkat не працювало для мене, ось моє рішення для тих, хто ще має проблеми з цим.

Для мене було вирішено два питання з рішенням Таккат. По-перше, я зрозумів, що після запуску потрібна затримка, перш ніж відбудеться перемикання на мікрофон (в моєму рішенні я використовую команду 'сон'). Також команда 'set-default-source' працювала над включенням мікрофона USB, але чомусь Skype не розпізнавав це і продовжував використовувати внутрішній мікрофон.

Щоб це працювало, спочатку корисно встановити павуконтроль. У pavucontrol відкрийте вкладку «Конфігурація» і спостерігайте за тим, що відбувається з командами нижче, щоб перевірити, чи працює робота за призначенням.

Потім з терміналу введіть:

pacmd

Звідти введіть:

list-cards

На виході знайдіть номер індексу USB-аудіо, який ви хочете (у моєму випадку це було «1»). Потім перегляньте рядки, перелічені в розділі "профілі" як для картки за замовчуванням, так і для USB-карти. Вони повинні бути тими ж, що перелічені в pavucontrol, і можуть бути чимось на кшталт 'ouput: input + output', 'off' або 'input: analog-mono' і т. Д. Ще в командному рядку pacmd команда set-card-profile <index number> <profile name>повинна змінитися налаштування в pavucontrol. Що ми хочемо зробити тут, це переключити внутрішній аудіо тільки з дуплексу на вихід, а 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"

Пояснення: Я виявив, що команда "сон" необхідна, це означає, що команда виконується після паузи, яку я встановив на 30 секунд (я думаю, що це може бути менше, пограйте з цим). Наступною командою (після '&&') є отримання за замовчуванням (внутрішнього) профілю картки для переходу з вводу + виводу (дуплекс, який є типовим) лише для виведення. Наступна команда - звукова карта USB (у моєму випадку номер "1") вимкнеться. Остання команда полягає в тому, щоб ця сама картка знову включалася в режимі 'input: analog-mono'

Можливо, вам доведеться пограти з цими налаштуваннями, щоб знайти той, який працює.

Тепер, коли я запускаю, мій USB-мікрофон готовий до використання через 30 секунд, а Skype використовує правильний мікрофон.


0

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


1
Дякую за допомогу, але це я зараз роблю. Однак я не бачу способів зробити це налаштуванням за замовчуванням. Раз у раз мені доведеться це робити знову, бо налаштування змінилися б.
Gizmoatwork
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.