c# - 对 Windows 如何获取音频线路名称感到困惑

标签 c# audio windows-vista winmm core-api

我对音频设备/线路/端点在 Windows (vista) 中的命名方式感到非常困惑。

  • 首先,我转到控制面板小程序“声音”。其中,我找到了一条物理上位于 USB 音频设备上的输入线。小程序中“录音设备”的名称为:
    麦克风
    3- USB 音频设备 工作

  • 从 waveInGetDeviceCaps 我得到
    麦克风(3- USB 音频设备 请注意缺少右括号

  • 从 IMMDevice.IPropertyStore 中,我看到两个可以提取名称的属性。其中一位说
    麦克风
    另一个说USB Audio Device

那个“3-”是从哪里来的?

最佳答案

“3-”取决于您将设备连接到的 USB 端口。如果您将设备移至另一个 USB 端口,它将获得另一个编号。这是为了唯一标识连接到不同端口的相同设备。 CoreAudio API 使用真实 ID(很像 GUID)来识别每个设备,因此它不需要对设备名称中的差异进行编码。

请注意,这是我对使用 USB 声音设备以及 MME 和 CoreAudio API 的看法。真实的故事可能可以在 DDK 中找到,或者从 Microsoft 的人那里找到。

关于c# - 对 Windows 如何获取音频线路名称感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1929841/

相关文章:

c# - Int32 的值太大或太小 - Facebook 和 dotnetopenauth

c# - linq查询一对一

audio - DSP - 滤波器扫描效果

java - 播放一定数量后,mp音频停止播放

visual-c++ - 我如何知道我的程序是否需要 MDAC?

delphi - WH_JOURRNALRECORD 的 SetWindowsHookEx 在 Vista/Windows 7 下失败

c# - 即使提供了参数,过程仍需要参数

c# - 从一对多的情况我如何在 Entity Framework 中获得共同的项目

python-2.7 - Python中的听力图代码

memory - Vista中的静态内存分配会导致崩溃吗?