какое имя устройства я должен предоставить в 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 

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

  • Снизьте libstdc ++. So.6 до версии `GLIBCXX_3.4.20 '
  • Не удалось получить доступ к linux / skbuff.h
  • Расположение исполняемого файла, сформированного после компиляции программы C
  • Текстовый редактор для печати кода на C ++
  • Среда разработки для C
  • Компиляция источников с компилятором, отличным от стандартного
  • сделать файл журнала
  • Emscripten принципиально несовместим с clang on linux
  • Компиляция с недавним gcc на RedHat6: как распространять программное обеспечение?
  • Отправка сигнала SIGINT для обработки при выполнении системного вызова или скрипта killall -SIGINT
  • Перенаправление вывода при выполнении «bash -c ...» из программы C
  • Interesting Posts

    Debian Stretch / Gnome Network Manager: выберите сетевой интерфейс для sftp

    Изменить размер домашнего каталога XFS в LVM

    Невозможно создать раздел после 4-го

    Эффект убийства длинной команды rm

    Как найти файлы, их имена, имена файлов находятся в одном файле?

    linux 3.17 поддерживает hotplug thunderbolt непривязанных устройств молнии – что это?

    Можно ли использовать сокет, если его файл доступен только для чтения?

    Системный пользователь не может получить доступ к группе пользователей

    Резервная память для программы

    выйдите из ssh и все еще выполняете команду?

    Какую программу я использую для проверки почты?

    Как поддерживать (верхнюю) строку, видимую при прокрутке?

    Синтаксис синтаксиса «grep» для BRE или ERE содержит синтаксис «синтаксиса регулярных выражений» 8.5.6 'в справочнике findutils?

    Как сделать SD-карту в качестве загрузки по умолчанию в uboot?

    «Исправить» место для хранения общих носителей на одной машине

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