【发布时间】:2017-03-03 18:20:31
【问题描述】:
我正在尝试制作一个简单的录音室录音应用程序。 我有多个声音输入设备,想同时录制它们。
如何发现所有物理音频输入?
当我使用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 以获取 物理 输入通道?以及它们的参数(以便我可以选择采样率等)
【问题讨论】:
-
我认为 PortAudio 不可能。您可以尝试在设备名称中扫描
(hw:X,Y),但我不确定这是否与您想要查看的设备完全匹配。 -
谢谢!我想知道是否有任何其他 API 可以使它变得简单?
-
我发现在 PulseAudio 中是可能的。
标签: linux audio sdl portaudio pulseaudio