如何 select waveIn/waveOut 使用哪个 Input/Output 设备运行 C++

How to select which Input/Output device being used by waveIn/waveOut functions C++

我一直在研究 waveIn 录音功能,我可以录音一段时间,但我使用的 input/output 设备有问题。

我不知道如何 select 函数应该使用哪个输入或输出设备,我知道 waveInOpen 将 deviceID 作为它的第二个参数,但我只在这里使用 WAVE_MAPPER 我想这只是 select 支持所选格式的第一台设备。

如果有人能帮助我或至少指出正确的方向以了解如何获取特定 input/output 设备的设备 ID 或者它应该是完成。

您调用 waveInGetNumDevs 来告诉您系统上有多少设备可用。有效标识符是从 0 到 N-1 的整数(其中 N 是 waveInGetNumDevs 返回的数字)。

然后您可以使用 waveInGetDevCaps to get information about each available input device. This will give you the product name, number of channels, and the formats it supports (and a few other things)。您可以(举一个明显的例子)使用它来填充列表,然后让用户从列表中进行选择。

然后在调用 waveInOpen 时提供所选设备的标识符。