какое имя устройства я должен предоставить в snd_pcm_open, кроме "default"

Я хочу записывать звук с двух устройств одновременно:

  • внутренний микрофон
  • внешний USB-микрофон для веб-камеры

Используя pulseaudio sound controller, я установил любое из этих устройств по умолчанию и смог записать звук с помощью snd_pcm_open(&handle, "default", SND_PCM_STREAM_CAPTURE, 0) .

Но теперь я хочу записывать звук с обоих устройств одновременно, поэтому мне нужно выбрать схему именования, упомянутую здесь . Однако у меня нет успеха с парой из них.

Я думал, что это решит мою проблему, но front:CARD=U0x46d0x825,DEV=0 не помогло, как имя устройства.

Я получаю эти ошибки:

 ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM ALSA lib pcm_hw.c:1667:(_snd_pcm_hw_open) Invalid value for card 

arecord -l дает мне:

 # arecord -l **** List of CAPTURE Hardware Devices **** Home directory not accessible: Permission denied card 0: PCH [HDA Intel PCH], device 0: ALC662 rev1 Analog [ALC662 rev1 Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 0: PCH [HDA Intel PCH], device 2: ALC662 rev1 Alt Analog [ALC662 rev1 Alt Analog] Subdevices: 1/1 Subdevice #0: subdevice #0 card 1: U0x46d0x825 [USB Device 0x46d:0x825], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0 

и # arecord -L дает:

 # arecord -L null Discard all samples (playback) or generate zero samples (capture) pulse PulseAudio Sound Server default:CARD=PCH HDA Intel PCH, ALC662 rev1 Analog Default Audio Device sysdefault:CARD=PCH HDA Intel PCH, ALC662 rev1 Analog Default Audio Device front:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Front speakers surround40:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 4.0 Surround output to Front and Rear speakers surround41:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers dmix:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Direct sample mixing device dmix:CARD=PCH,DEV=2 HDA Intel PCH, ALC662 rev1 Alt Analog Direct sample mixing device dsnoop:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Direct sample snooping device dsnoop:CARD=PCH,DEV=2 HDA Intel PCH, ALC662 rev1 Alt Analog Direct sample snooping device hw:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Direct hardware device without any conversions hw:CARD=PCH,DEV=2 HDA Intel PCH, ALC662 rev1 Alt Analog Direct hardware device without any conversions plughw:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Hardware device with all software conversions plughw:CARD=PCH,DEV=2 HDA Intel PCH, ALC662 rev1 Alt Analog Hardware device with all software conversions default:CARD=U0x46d0x825 USB Device 0x46d:0x825, USB Audio Default Audio Device sysdefault:CARD=U0x46d0x825 USB Device 0x46d:0x825, USB Audio Default Audio Device front:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Front speakers surround40:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 4.0 Surround output to Front and Rear speakers surround41:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio IEC958 (S/PDIF) Digital Audio Output dmix:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Direct sample mixing device dsnoop:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Direct sample snooping device hw:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Direct hardware device without any conversions plughw:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Hardware device with all software conversions по # arecord -L null Discard all samples (playback) or generate zero samples (capture) pulse PulseAudio Sound Server default:CARD=PCH HDA Intel PCH, ALC662 rev1 Analog Default Audio Device sysdefault:CARD=PCH HDA Intel PCH, ALC662 rev1 Analog Default Audio Device front:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Front speakers surround40:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 4.0 Surround output to Front and Rear speakers surround41:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers dmix:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Direct sample mixing device dmix:CARD=PCH,DEV=2 HDA Intel PCH, ALC662 rev1 Alt Analog Direct sample mixing device dsnoop:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Direct sample snooping device dsnoop:CARD=PCH,DEV=2 HDA Intel PCH, ALC662 rev1 Alt Analog Direct sample snooping device hw:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Direct hardware device without any conversions hw:CARD=PCH,DEV=2 HDA Intel PCH, ALC662 rev1 Alt Analog Direct hardware device without any conversions plughw:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Hardware device with all software conversions plughw:CARD=PCH,DEV=2 HDA Intel PCH, ALC662 rev1 Alt Analog Hardware device with all software conversions default:CARD=U0x46d0x825 USB Device 0x46d:0x825, USB Audio Default Audio Device sysdefault:CARD=U0x46d0x825 USB Device 0x46d:0x825, USB Audio Default Audio Device front:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Front speakers surround40:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 4.0 Surround output to Front and Rear speakers surround41:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio IEC958 (S/PDIF) Digital Audio Output dmix:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Direct sample mixing device dsnoop:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Direct sample snooping device hw:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Direct hardware device without any conversions plughw:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Hardware device with all software conversions по # arecord -L null Discard all samples (playback) or generate zero samples (capture) pulse PulseAudio Sound Server default:CARD=PCH HDA Intel PCH, ALC662 rev1 Analog Default Audio Device sysdefault:CARD=PCH HDA Intel PCH, ALC662 rev1 Analog Default Audio Device front:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Front speakers surround40:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 4.0 Surround output to Front and Rear speakers surround41:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers dmix:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Direct sample mixing device dmix:CARD=PCH,DEV=2 HDA Intel PCH, ALC662 rev1 Alt Analog Direct sample mixing device dsnoop:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Direct sample snooping device dsnoop:CARD=PCH,DEV=2 HDA Intel PCH, ALC662 rev1 Alt Analog Direct sample snooping device hw:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Direct hardware device without any conversions hw:CARD=PCH,DEV=2 HDA Intel PCH, ALC662 rev1 Alt Analog Direct hardware device without any conversions plughw:CARD=PCH,DEV=0 HDA Intel PCH, ALC662 rev1 Analog Hardware device with all software conversions plughw:CARD=PCH,DEV=2 HDA Intel PCH, ALC662 rev1 Alt Analog Hardware device with all software conversions default:CARD=U0x46d0x825 USB Device 0x46d:0x825, USB Audio Default Audio Device sysdefault:CARD=U0x46d0x825 USB Device 0x46d:0x825, USB Audio Default Audio Device front:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Front speakers surround40:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 4.0 Surround output to Front and Rear speakers surround41:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 5.0 Surround output to Front, Center and Rear speakers surround51:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio IEC958 (S/PDIF) Digital Audio Output dmix:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Direct sample mixing device dsnoop:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Direct sample snooping device hw:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Direct hardware device without any conversions plughw:CARD=U0x46d0x825,DEV=0 USB Device 0x46d:0x825, USB Audio Hardware device with all software conversions 

Итак, каковы правильные имена, которые я должен предоставить вышеуказанным устройствам для их записи одновременно в соответствии со спецификацией ALSA?

Я не хочу использовать API-интерфейс pulseaudio .

3 Solutions collect form web for “какое имя устройства я должен предоставить в snd_pcm_open, кроме "default"”

Я думаю, что проблема в том, что front: с другого вопроса не работал бы с front: это набор динамиков, а не микрофон или записывающее устройство. Вы можете использовать формат hw:CARD=X,Y , но вы получите немного большую гибкость, если будете использовать, как предлагает @CL, plughw:CARD=X,Y Plughw может автоматически позаботиться о передискретизации или преобразовании значений по сравнению с hw:CARD=X,Y

На основе вашего вывода из arecord -l и arecord -L :

  • Внутренний микрофон должен быть: plughw:DEV=0,CARD=PCH или просто plughw:PCH,0
  • Веб-камера USB должна быть: plughw:DEV=0,CARD=U0x46d0x825 или просто plughw:U0x46d0x825,0

Если вы запускаете оба Pulseaudio и ALSA, то происходит то, что Pulseaudio доказывает уровень совместимости по умолчанию, используя конфигурацию, аналогичную

 pcm.!default pulse ctl.!default pulse 

Это означает, что если вы используете snd_pcm_open устройство по default , вы разговариваете с Pulseaudio, который затем перенаправляет вас в соответствии с предпочтением, сохраненным для имени приложения.

Pulseaudio также открывает устройства ALSA, когда они их используют. Устройства ALSA hw могут быть открыты только один раз, поэтому, как только Pulseaudio их откроет, вы получите сообщение «занят», если попытаетесь получить к ним доступ через API ALSA. Это также относится к плагинам, которые предоставляются автоматически, например, front , plughw и т. Д. Вы ушли с использованием plughw потому что Pulseaudio еще не открывал их, когда вы пытались, это не будет работать вообще.

Возможные варианты:

(1) полностью остановите Pulseaudio, затем вы можете открывать устройства ALSA с помощью snd_pcm_open любым способом, используя CARD и т. Д. Для идентификации устройства.

(2) Используйте API Pulseaudio.

(3) Сделайте комбинированное устройство для двух звуковых карт, либо в ALSA, либо в Pulseaudio, и вручную установите это как предпочтительный приемник для своего приложения, а затем используйте уровень совместимости Pulseaudio по default .

попробуйте запустить

 $ cat /proc/asound/devices 1: : sequencer 2: [ 0- 3]: digital audio playback 3: [ 0- 0]: digital audio playback 4: [ 0- 0]: digital audio capture 5: [ 0- 3]: hardware dependent 6: [ 0- 0]: hardware dependent 7: [ 0] : control 33: : timer 

использовать первое аудиоустройство с номером устройства, отличным от нуля

  • Каков наилучший инструмент для автоматизации 32-64-битных библиотек для Unix и Windows, создающих программное обеспечение на C ++, воспроизводимое пользователями и машинами?
  • Как получить REAL gcc (не тот, который хэшируется для clang) в MacOS?
  • Запуск скомпилированной программы на C ++ в фоновом режиме и отправка ввода при необходимости
  • Неопределенная ссылочная ошибка для компонентов glip даже с включенным glib
  • Запись и отображение информации о загрузочном процессе в Linux
  • LFS 7.10 - почему я получаю сообщение об ошибке при использовании команды make для expect-5.45
  • Расположение исполняемого файла, сформированного после компиляции программы C
  • Каково число в верхней части для результатов для ls -l?
  • выполнить файл на сервере более безопасно?
  • Debian init.d с рабочим демоном C ++, неожиданными результатами
  • Почему Ubuntu 16.04 исполняет ограниченное изображение C # после 90 секунд, а другие - 24X7?
  • Interesting Posts

    Как извлечь неизвестные аргументы в сценарии оболочки?

    WORM или файловая система архива?

    Qemu оканчивается на сигнал x от pid xxxx

    Сортировка файла CSV, но не его заголовок

    Как переименовать несколько файлов, используя find

    я получаю ошибки в SSLSTRIP и не пароль пользователя

    Странное поведение неинициализированных массивов и неустановленных массивов

    Nginx loadbalancing между PHP-FPM и Apache

    Установка нового драйвера NVIDIA не выполняется

    Изменение порядка загрузки – доступ к Linux можно только через опцию «Использовать устройство»

    Как сделать $ ((5/2)) доставить число с плавающей запятой?

    Как создать переключатель заголовка окна Xterm между текущей текущей командой и текущим путем?

    Как создать пользовательские правила Vsync для «Комптона»?

    Линейный экран Linux Mint по умолчанию перед входом в систему

    Как я могу исходный файл bashrc каждый раз, когда я 'очищаю'

    Linux и Unix - лучшая ОС в мире.