c# - 如何将 WAVE_MAPPER 音频线与其音频设备关联

标签 c# c++ audio pinvoke winmm

我正在开发一个应用程序,除其他外,它枚举所有输入音频设备(使用 SetupAPI),然后对于每个音频设备,它列出所有输入音频线路(使用 winmm. dll)。

基本上,我将两者联系起来的方式是从音频设备获取设备路径,然后使用 waveInMessage 比较音频线路的设备路径。

现在,我希望能够对 Windows 默认 [输入] 音频线 (WAVE_MAPPER) 执行相同的操作。

问题在于,使用 waveInGetDevCaps 进行 WAVE_MAPPER 返回“Microsoft Sound Mapper”,并将 waveInMessageDRV_QUERYDEVICEINTERFACE 一起使用> 返回一个空字符串。

关于如何找出 Microsoft Mapper 映射到哪个设备,有什么建议吗?

最佳答案

WAVE_MAPPER 映射到的设备取决于传递给waveInOpen 的参数。来自文档:

WAVE_MAPPER - The function selects a waveform-audio input device capable of recording in the specified format.

这意味着您无法在不实际打开设备的情况下检查设备属性。打开它后,您应该能够使用 waveInGetID 获取实际的设备 ID。

关于c# - 如何将 WAVE_MAPPER 音频线与其音频设备关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883518/

相关文章:

c# - 在 C# 中使用 LINQ 查询 MS access 数据库

c# - 是否可以限制应用程序域的性能或设置配额?

c# - makepri.exe 是如何集成到 MSBuild 中的?

windows - 排除 WASAPI 中环回模式捕获的数据

java - 背景音乐线程在游戏中死亡而不是暂停

javascript - 如何同步和突出显示 HTML 文本到音频

c# - c# 中是否有等效的 c++ vector::back

c++ - OpenCV 视频捕获未加载文件

c++ - 如何在c++中从wstring中获取子字符串?

c++ - 如何在数组的一次迭代中对 bool 数组进行排序(仅遍历数组一次)?