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/

相关文章:

javascript - 视频静音/取消静音按钮 javaScript

audio - HTML5 Web音频卡住了(缓冲问题?)

windows - 我如何检查用户是否将他的时钟拨回?

c# - 什么方式比较好 : make own wrapper for DbContext or use DbContext in Controller

c# - .NET 6 - 带有 CamelCase 的 AddJsonOptions 不起作用

c# - 一个有恒星、银河系和其他东西的星系 (WPF)

c# - Visual Studio 2013 Autoformat (CTRL K D) cshtml 小写问题

javascript - 在 PDF 中播放声音

java - 如何在 Eclipse 中使用 Vista 的 SuperFetch?

windows-vista - SBCL 在 Vista 上崩溃。你知道如何让它发挥作用吗?