- Вопрос или проблема
- Изменение PulseAudio
- Аудио замешательство
- Ответ или решение
- Проблемы с работой микрофона USB веб-камеры: причины и решения
- 1. Убедитесь, что оборудование правильно подключено
- 2. Проверка состояния микрофона в системе
- 3. Изменение настроек PulseAudio
- 4. Настройки приложений
- 5. Проверка в PipeWire
- Заключение
Вопрос или проблема
У меня есть USB веб-камера с встроенным микрофоном. Камера работает, и микрофон обнаружен, но он не подает сигнал.
Выход с помощью pacmd list-sources
3 source(s) available.
* index: 0
name: <alsa_input.usb-Jieli_Technology_USB_PHY_2.0-02.mono-fallback>
driver: <module-alsa-card.c>
flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 9040
volume: mono: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 35466 / 54% / -16.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max rewind: 0 KiB
sample spec: s16le 1ch 44100Hz
channel map: mono
Mono
used by: 0
linked by: 0
configured latency: 0.00 ms; range is 0.50 .. 2000.00 ms
card: 0 <alsa_card.usb-Jieli_Technology_USB_PHY_2.0-02>
module: 7
properties:
alsa.resolution_bits = "16"
device.api = "alsa"
device.class = "sound"
alsa.class = "generic"
alsa.subclass = "generic-mix"
alsa.name = "USB Audio"
alsa.id = "USB Audio"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.device = "0"
alsa.card = "2"
alsa.card_name = "USB PHY 2.0"
alsa.long_card_name = "Jieli Technology USB PHY 2.0 at usb-0000:02:00.0-6, high speed"
alsa.driver_name = "snd_usb_audio"
device.bus_path = "pci-0000:02:00.0-usb-0:6:1.2"
sysfs.path = "/devices/pci0000:00/0000:00:01.3/0000:02:00.0/usb1/1-6/1-6:1.2/sound/card2"
udev.id = "usb-Jieli_Technology_USB_PHY_2.0-02"
device.bus = "usb"
device.vendor.id = "1224"
device.vendor.name = "Jieli Technology"
device.product.id = "2a25"
device.product.name = "USB PHY 2.0"
device.serial = "Jieli_Technology_USB_PHY_2.0"
device.form_factor = "webcam"
device.string = "hw:2"
device.buffering.buffer_size = "176400"
device.buffering.fragment_size = "88200"
device.access_mode = "mmap+timer"
device.profile.name = "mono-fallback"
device.profile.description = "Mono"
device.description = "USB PHY 2.0 Mono"
module-udev-detect.discovered = "1"
device.icon_name = "camera-web-usb"
ports:
analog-input-mic: Microphone (priority 8700, latency offset 0 usec, available: unknown)
properties:
device.icon_name = "audio-input-microphone"
active port: <analog-input-mic>
index: 1
name: <alsa_output.pci-0000_07_00.1.hdmi-stereo-extra1.monitor>
driver: <module-alsa-card.c>
flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 1030
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max rewind: 0 KiB
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
configured latency: 0.00 ms; range is 0.50 .. 1999.82 ms
monitor_of: 0
card: 1 <alsa_card.pci-0000_07_00.1>
module: 8
properties:
device.description = "Monitor of GK208 HDMI/DP Audio Controller Digital Stereo (HDMI 2)"
device.class = "monitor"
alsa.card = "0"
alsa.card_name = "HDA NVidia"
alsa.long_card_name = "HDA NVidia at 0xf7080000 irq 77"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:07:00.1"
sysfs.path = "/devices/pci0000:00/0000:00:03.1/0000:07:00.1/sound/card0"
device.bus = "pci"
device.vendor.id = "10de"
device.vendor.name = "NVIDIA Corporation"
device.product.id = "0e0f"
device.product.name = "GK208 HDMI/DP Audio Controller"
device.string = "0"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
index: 2
name: <alsa_output.pci-0000_09_00.4.iec958-stereo.monitor>
driver: <module-alsa-card.c>
flags: DECIBEL_VOLUME LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 1030
volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB
balance 0.00
base volume: 65536 / 100% / 0.00 dB
volume steps: 65537
muted: no
current latency: 0.00 ms
max rewind: 0 KiB
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
fixed latency: 100.14 ms
monitor_of: 1
card: 2 <alsa_card.pci-0000_09_00.4>
module: 9
properties:
device.description = "Monitor of Starship/Matisse HD Audio Controller Digital Stereo (IEC958)"
device.class = "monitor"
alsa.card = "1"
alsa.card_name = "HD-Audio Generic"
alsa.long_card_name = "HD-Audio Generic at 0xf7400000 irq 79"
alsa.driver_name = "snd_hda_intel"
device.bus_path = "pci-0000:09:00.4"
sysfs.path = "/devices/pci0000:00/0000:00:08.1/0000:09:00.4/sound/card1"
device.bus = "pci"
device.vendor.id = "1022"
device.vendor.name = "Advanced Micro Devices, Inc. [AMD]"
device.product.id = "1487"
device.product.name = "Starship/Matisse HD Audio Controller"
device.string = "1"
module-udev-detect.discovered = "1"
device.icon_name = "audio-card-pci"
Судя по выводу pacmd list-sources
, все ваши микрофоны приостановлены из-за неактивности (что имеет смысл). То, что я обнаружил с некоторыми USB-устройствами, заключается в том, что как только микрофон установлен в состояние SUSPENDED
, он никогда не возвращается. Обычно есть два решения этой проблемы:
- Отключите веб-камеру, посчитайте до пяти и подключите обратно.
⇢ Это перезапустит USB-устройство и обычно возвращает все устройства в сеть. - Обновите PulseAudio, чтобы не приостанавливать неактивные аудиоустройства.
⇢ Это обычно хорошо работает для множества компьютеров на работе, где USB-камеры нельзя физически отключить от компьютера без ножниц.
Изменение PulseAudio
Чтобы предотвратить приостановку аудиоустройств при неактивности, вам нужно закомментировать одну строку в файле default.pa
. Вот шаги, которые следует выполнить:
-
Откройте терминал (если он еще не открыт)
-
Откройте файл
default.pa
для редактирования от имениroot
:$ sudo vi /etc/pulse/default.pa
Примечание: Можете использовать что-то кроме
vi
. Это больше привычка, чем прямое предложение использовать редактор. -
Найдите строку, которая гласит
load-module module-suspend-on-idle
и прокомментируйте ее. Это будет примерно на 90% вниз. После этого строка должна выглядеть так:### Automatically suspend sinks/sources that become idle for too long # load-module module-suspend-on-idle
-
Перезапустите PulseAudio:
$ pulseaudio -k
-
Подтвердите, что ваши аудиоустройства работают:
pacmd list-sources
Проверьте USB-микрофон, который может находиться на индексе
0
, как и в предоставленном вами выводе, и подтвердите значениеstate
. Это должно показыватьIDLE
. Когда это активно используется приложением, оно изменится наRUNNING
, затем вернется в состояниеIDLE
примерно через 30 секунд после того, как больше не будет использоваться.
Аудио замешательство
Еще одна проблема, с которой вы можете столкнуться, заключается в том, что приложение может не знать, какой микрофон использовать автоматически, и в результате выбор ввода всегда будет пустым. Чтобы решить эту проблему, откройте приложение PulseAudio Volume Control (pavucontrol) и щелкните на вкладке “Конфигурация”. Установите вывод на “Аналоговый стерео выход”:
Почему установка вывода решает проблему с вводом, могу только догадываться. Тем не менее, это решение работает для тех редких случаев, когда компьютер постоянно показывает, что аудиовходное устройство отсутствует.
В Guvcview->AudioControls по умолчанию было установлено в качестве устройства ввода–>pulse. Я просто изменил его на hda intel (моя звуковая карта) и все заработало!
У меня есть эта проблема на Kubuntu 24.04 с веб-камерой Logitech C920. Моя система, похоже, не использует PulseAudio (ps aux | grep pulse
показывает только pipewire-pulse
), но у меня та же проблема (микрофон распознается, раньше работал, теперь имеет 0 сигнала).
Используя pw-cli list-objects
для поиска ID устройства моей веб-камеры, а затем pw-cli info <id>
, я вижу, что мое устройство “приостановлено”, аналогично этому ответу о PulseAudio:
➜ ~ pw-cli info 211
id: 211
permissions: rwxm-
type: PipeWire:Interface:Node/3
* input ports: 0/0
* output ports: 2/65
* state: "suspended"
Состояние приостановлено сохранялось после перезагрузки, и я полагаю, что именно поэтому оно перестало работать. Я попробовал несколько вещей, например, использовать wireplumber
для отключения приостановки неактивных устройств и использовать alsactl restore
, но это ничего не дало…
Пока единственный способ восстановить аудиовход из веб-камеры – это перемещение в другой USB-порт. Возможно, эти изменения в wireplumber
предотвратят повторение этой проблемы, я поделюсь обновлением через несколько недель, чтобы увидеть, так ли это.
Ответ или решение
Проблемы с работой микрофона USB веб-камеры: причины и решения
Если у вас возникли проблемы с работой встроенного микрофона вашей USB веб-камеры, это может быть связано с несколькими факторами, связанными как с настройками системы, так и с самим устройством. Рассмотрим основные возможные причины и шаги для их устранения.
1. Убедитесь, что оборудование правильно подключено
Первым делом, проверьте, правильно ли подключена веб-камера. Попробуйте выполнить следующие действия:
- Переподключите устройство: отсоедините веб-камеру от USB-порта, подождите несколько секунд и снова подключите ее. Это поможет сбросить состояние устройства и иногда возвращает его в рабочий режим.
2. Проверка состояния микрофона в системе
Поскольку ваш микрофон определяется, но не работает, это может быть связано с тем, что он находится в состоянии "приостановлено". Используйте следующую команду для проверки состояния микрофона:
pacmd list-sources
Из предоставленного вами вывода видно, что ваш микрофон имеет состояние SUSPENDED
. Это может происходить из-за того, что PulseAudio (или аналогичная служба, как PipeWire) приостанавливает устройства, которые не используются.
3. Изменение настроек PulseAudio
Чтобы настроить PulseAudio так, чтобы он не приостанавливал устройства, измените конфигурацию:
- Откройте терминал.
- Редактируйте файл
default.pa
:
sudo vi /etc/pulse/default.pa
- Найдите строку, содержащую
load-module module-suspend-on-idle
, и закомментируйте ее, добавив#
в начале строки:
# load-module module-suspend-on-idle
- Перезапустите PulseAudio:
pulseaudio -k
- Проверьте, работает ли микрофон, выполнив снова:
pacmd list-sources
Ваш микрофон теперь должен быть в состоянии IDLE
или RUNNING
, ошибок быть не должно.
4. Настройки приложений
Иногда определенные приложения могут неправильно выбирать устройства ввода. Если вы используете приложение, такое как Guvcview, убедитесь, что в настройках устройства ввода выбран правильный источник звука (например, HDA Intel, если ваш звук связан с аудиокартой).
5. Проверка в PipeWire
Если вы используете Kubuntu и система работает на базе PipeWire вместо PulseAudio, используйте команды для проверки состояния устройства:
pw-cli list-objects
pw-cli info <device_id>
Если состояние устройства "suspended", переключение его на другой USB-порт может помочь вернуть его в рабочий режим.
Заключение
Проблемы с работой микрофона USB веб-камеры могут быть решены с помощью простых шагов по диагностике и настройке. Переподключение устройства, проверка состояния через команды, изменения в конфигурации PulseAudio или PipeWire часто помогают восстановить работоспособность.
Если ни одно из решений не помогло, возможно, имеется аппаратная проблема, и стоит проверить устройство на другом компьютере или обратиться в сервисный центр.