Я пытаюсь сделать простое приложение для записи студии. У меня есть несколько устройств ввода звука, и я хотел бы записать их все одновременно.Как узнать список физических каналов аудиовхода?
Как узнать все физические аудиовходы?
Когда я использую sounddevice.query_devices()
, я получаю много виртуальных устройств и много виртуальных входных каналов, которые не содержат никаких данных:
>>> sd.query_devices()
0 HDA Intel PCH: HDMI 0 (hw:0,3), ALSA (0 in, 8 out)
1 HDA Intel PCH: HDMI 1 (hw:0,7), ALSA (0 in, 8 out)
2 HDA Intel PCH: HDMI 2 (hw:0,8), ALSA (0 in, 8 out)
3 hdmi, ALSA (0 in, 8 out)
4 pulse, ALSA (32 in, 32 out)
* 5 default, ALSA (32 in, 32 out)
6 /dev/dsp, OSS (16 in, 16 out)
Я заинтересован только в реальных устройствах, а также в режиме реального входные каналы.
Когда я запрашиваю микрофонные устройства с pacmd
, а затем list-sources
я получаю два канала, давая поддельные стерео, даже если устройство моно:
$ pacmd
>>> list-sources
...
channel map: front-left,front-right
Stereo
Есть ли способ либо запроса PulseAudio, или Portaudio к get физический входные каналы? И их параметры (чтобы я мог выбирать частоту дискретизации и т. Д.)
Я не думаю, что это возможно с PortAudio. Вы можете попробовать сканировать для '(hw: X, Y)' в названии устройства, но я не уверен, соответствует ли это именно тем устройствам, которые вы хотели бы видеть. – Matthias
Спасибо! Интересно, есть ли какой-нибудь другой API, который упростит его? –
Я нашел это в PulseAudio. –