Микрофон DroidCam не работает в Ubuntu 24.04 – ошибка “snd_pcm_open failed: Device or resource busy”

Вопрос или проблема

У меня возникли проблемы с работой микрофона 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 для получения специфичных советов.

Оцените материал
Добавить комментарий

Капча загружается...