gpt4 book ai didi

c# - 列出连接到 Windows PC 的所有 USB 音频耳机

转载 作者:可可西里 更新时间:2023-11-01 10:46:17 24 4
gpt4 key购买 nike

我想使用 C# 检索连接到 PC 的 USB 耳机设备。我尝试了以下解决方案但没有奏效:

解决方案 1: How to enumerate audio out devices in c#

我试过了,但设备名称显示为“(通用 USB 音频)”,而不是实际名称。

解决方案 2: How to get the default audio device?

解决方案 3: Detecting Audio Input & output devices connected to system

解决方案 2 和解决方案 3 给出了以下结果:设备名称被截断为 31 个字符。例如:“麦克风(森海塞尔 VOICE 689”

enter image description here

****问:有什么办法可以得到设备的完整名称吗?****

最佳答案

如果您知道它是一个 USB 音频设备,并且假设驱动程序是为该设备正确编写的,您可以这样做:

foreach (ManagementObject drive in
new ManagementObjectSearcher(
"select Name from Win32_USBDevice where Service='usbaudio'").Get())
{
{
string s = drive["Name"].ToString();
// Continue
}
}

添加你只能得到 31 个字符(技术上是 32 个),因为 native .DLL 的 PInvoke 使用 char[32],所以它不能返回更多;您不会从解决方案 1 和 2 中得到所需的东西。

此外,我不知道您为什么不能使用 Win32_USBDevice,因为我也在使用 Win7 x64,而且我没有遇到任何问题。 This链接可能对您有帮助。

可能的替代方案您可以使用 Win32_PnPEntity 类:

foreach (ManagementObject drive in
new ManagementObjectSearcher(
"select Name from Win32_PnPEntity where Service='usbaudio'").Get())
{
{
string s = drive["Name"].ToString();
// Continue. Can look at Description, Caption, etc. too
}
}

关于c# - 列出连接到 Windows PC 的所有 USB 音频耳机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24023944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com