- Вопрос или проблема
- Ответ или решение
- Теория:
- Пример:
- Применение:
- 1. Перепроверьте настройку Loopback устройств:
- 2. Проверка конфигурации PipeWire и PulseAudio:
- 3. Настройка источников в PulseAudio / PipeWire:
- 4. Диагностика активных процессов:
- 5. Альтернативное нахождение устройства в pavucontrol:
- 6. Переустановка DroidCam:
- Заключение:
Вопрос или проблема
У меня возникли проблемы с работой микрофона DroidCam на Ubuntu 24.04 вне OBS Studio. Видео DroidCam отлично работает в OBS Studio, и я также могу использовать его как виртуальную веб-камеру в Brave через OBS Virtual Camera, но микрофон DroidCam не работает как системный аудиовход.
Вот моя настройка:
-
Операционная система: Ubuntu 24.04 LTS (noble numbat) 64-бит
-
DroidCam Wireless Webcam (Android приложение на Samsung Galaxy)
-
DroidCam Client для Linux (версия 7.1.0, установлен из официального .deb пакета dev47apps)
-
DroidCam OBS плагин (версия 7.1.0, установлен через Flatpak: flatpak install flathub com.obsproject.Studio.Plugin.DroidCam)
-
Соединение: WiFi (телефон и компьютер в одной WiFi сети)
-
Файрвол: Ubuntu Firewall (ufw) активен, но порты 4747 (TCP и UDP) разрешены для входящего трафика.
-
OBS Studio: Версия, установленная из репозиториев Ubuntu (не Flatpak). Видео DroidCam правильно работает как источник в OBS Studio. “Включить звук” отмечено в свойствах источника DroidCam OBS. OBS Virtual Camera запущена.
Видео DroidCam правильно работает в OBS Studio, и я могу использовать его в Brave и Firefox через OBS Virtual Camera. Микрофон DroidCam НЕ работает как системный аудиовход. Он не отображается как устройство ввода звука в настойках звука Ubuntu или в pavucontrol. При тестировании микрофона на таких сайтах, как onlinemictest.com или mictests.com, микрофон не обнаруживается или записывается только белый шум.
При запуске DroidCam Client из терминала с sudo droidcam
, я вижу эту ошибку в выводе: error: snd_pcm_open failed: Dispositivo o recurso ocupado
(Устройство или ресурс занято).
В том же выводе терминала я также вижу это информационное сообщение: info: ALSA Loopback module is not loaded
, хотя я проверил, что модуль snd_aloop загружен, используя lsmod | grep snd_aloop
.
В pavucontrol (вкладка Входные устройства) индикатор громкости для “Loopback Estéreo analógico” не движется, когда я говорю в телефон.
Шаги, которые я попробовал (безуспешно):
-
Переустанавливал DroidCam Client несколько раз.
-
Проверял, что IP и порт правильно настроены в DroidCam Client и Android приложении.
-
Разрешил порты 4747 (TCP и UDP) в файрволе Ubuntu.
-
Проверил, что модуль v4l2loopback загружен (
lsmod | grep v4l2loopback
). -
Пробовал вручную загружать модуль snd_aloop с помощью:
sudo modprobe snd_aloop sudo modprobe snd_aloop pcm_name=droidcam sudo modprobe snd_aloop index=1,2 pcm_name=droidcam,droidcam_monitor
-
Пробовал загружать модуль PulseAudio для Loopback с
pacmd load-module module-alsa-source device=hw:Loopback,1,0
(ошибка: “Нет запущенного демона PulseAudio…”) -
sudo pacmd load-module module-alsa-source device=hw:Loopback,1,0
(та же ошибка) -
pacmd load-module module-loopback source=hw:Loopback,0,0 sink=hw:Loopback,1,0
(ошибка: “Нет запущенного демона PulseAudio…”) -
Сконфигурировал аудиопрофили в pavucontrol, как предложено в README DroidCam для Pipewire (“Pro Audio” для “Встроенное аудио” и “Analog Stereo Duplex” для “Loopback”).
-
Пробовал выбирать разные микрофоны в настройках Brave и на сайтах тестирования микрофона, включая “Loopback Estéreo analógico”, “Audio Pro”, “Built-in Audio Pro”, “OBS Virtual Camera”, “DroidCam” и др.
-
Проверил, что “Включить звук” отмечено в свойствах источника DroidCam OBS в OBS Studio.
-
Перезагружал компьютер несколько раз, а также Brave, DroidCam Client, PipeWire и WirePlumber.
-
Пробовал запускать DroidCam Client с sudo.
-
Проверил, что расширение “Ubuntu AppIndicators” установлено и включено.
-
Просмотрел ALSA звуковые карты и устройства захвата с помощью
aplay -l
иarecord -l
. -
Просмотрел процессы, использующие аудиоустройства, с помощью fuser и lsof.
-
Создал конфигурационный файл PipeWire для Loopback:
/etc/pipewire/client.conf.d/99-droidcam-loopback.conf
. -
Проверил, что “Analog Input – Loopback” выбран как устройство ввода по умолчанию в настройках звука Ubuntu.
Я хочу, чтобы микрофон DroidCam работал как системный аудиовход в Ubuntu 24.04, чтобы я мог использовать его в приложениях, таких как веб-браузеры (Brave, Firefox), особенно в aistudio.google.com.
Есть ли у кого-нибудь идеи, почему микрофон DroidCam не работает вне OBS Studio на Ubuntu 24.04 и почему я продолжаю получать ошибку snd_pcm_open failed: Device or resource busy
? Есть ли у вас какие-либо дальнейшие предложения по устранению данной проблемы или какие-либо конкретные настройки, которые я должен проверить в Ubuntu 24.04, PipeWire или ALSA, чтобы микрофон DroidCam работал правильно как системный аудиовход?
Ответ или решение
Если у вас возникли проблемы с работой микрофона DroidCam в Ubuntu 24.04 за пределами OBS Studio и отображается ошибка "snd_pcm_open failed: Device or resource busy", давайте разберем возможные шаги для решения этой проблемы.
Теория:
Основная проблема заключается в том, что микрофон DroidCam не обнаруживается как системное аудиоустройство, когда вы хотите использовать его системой или другими приложениями, такими как веб-браузеры. Заявленная ошибка snd_pcm_open failed: Device or resource busy
обычно указывает на то, что какая-то другая программа или служба уже использует ресурс звука, или на конфликт настроек звуковой подсистемы (например, ALSA или PipeWire).
В вашем случае звук работает внутри OBS Studio, но не за его пределами, что говорит о возможной ошибке в настройке системы на уровне PulseAudio или PipeWire, которые не подключают микрофон DroidCam к системе как глобальное устройством ввода.
Пример:
Подобная проблема может возникнуть, если ALSA Loopback модуль загружен неправильно или используется не тем способом, который совместим с текущими звуковыми подсистемами. К примеру, использование PipeWire наравне с (или вместо) PulseAudio может вызвать конфликт в конфигурации.
Применение:
Вот шаги, которые стоит рассмотреть:
1. Перепроверьте настройку Loopback устройств:
Убедитесь, что ALSA модуль snd_aloop
загружен правильно. Вы уже сделали modprobe snd_aloop
— проверьте, что модуль действительно активен и корректно загружен, с правильными индексами. Это предполагает явное указание номеров индексов и их уникальность для предотвращения конфликта.
lsmod | grep snd_aloop
2. Проверка конфигурации PipeWire и PulseAudio:
Так как Ubuntu 24.04 может по умолчанию использовать PipeWire, убедитесь, что старые конфигурации PulseAudio не мешают:
-
Проверьте, какой из звуковых серверов запущен:
pactl info | grep "Server Name"
-
Если вы используете PipeWire, проверьте конфигурацию в
~/.config/pipewire/
, убедитесь, что все.conf
файлы учли необходимость загрузки и обработки Loopback устройств. Попробуйте явно указать использованиеsnd_aloop
в PipeWire конфигурациях.
3. Настройка источников в PulseAudio / PipeWire:
Сначала определите, какие модули загружены. Затем, если PulseAudio активен, явно добавьте Loopback устройство:
pactl load-module module-alsa-source device=hw:Loopback,1,0
Если это не работает из-за отсутствия PulseAudio, сконцентрируйтесь на настройки в PipeWire, при необходимости пересоздав конфигурации или используйте pw-cli
для взаимодействия с источниками.
4. Диагностика активных процессов:
Запустите команды для определения, какой процесс может занять звуковые устройства:
fuser -v /dev/snd/*
lsof | grep "/dev/snd/"
Это поможет узнать, какие программы занимают ресурсы аудио. Возможно, их требуется завершить для освобождения устройства.
5. Альтернативное нахождение устройства в pavucontrol:
Если устройство в pavucontrol не отображается, попробуйте проверить в терминале с использованием pactl
:
pactl list sources | grep -A 10 "State: RUNNING"
Возможно, его необходимо явно активировать или правильно выбрать профиль в pavucontrol, переключив на ранее подходящее "Pro Audio".
6. Переустановка DroidCam:
Хотя вы уже пытались переустановить клиент, выполните это снова, убеждаясь, что старые конфигурации на системе полностью удалены до новой установки.
Заключение:
В случае, если все вышеперечисленные шаги не приводят к результату, возможно, стоит обратить внимание на специфичные для версии 24.04 настройки или конфликты с обновлениями системы, обратить внимание на лог-файлы (/var/log/syslog
, ~/.localhostxorg
) для дополнительных подсказок о природе конфликта. Также рассмотрите возможность получения более свежих версий поддержки дистрибутивом и DroidCam. Вы можете связаться с техподдержкой приложения или обратиться на форумы пользователей Ubuntu для получения специфичных советов.