2011-04-03 150 views
4

我试图检测耳机是否在Windows上插入。我已经尝试过DirectSound和NAudio库,并没有取得任何成功。有没有人有什么建议?在Windows中检测耳机

注意:此问题与this question重复,但该问题的答案不包含任何代码示例或教程。

+0

请原谅我编辑你的问题,但我想确保它不是作为重复关闭。 – MusiGenesis 2011-04-03 02:09:57

+0

您是否在尝试检测插入声卡或USB耳机的线路输出插孔的模拟耳机?这将严重影响我的答案。 – selbie 2011-04-03 05:23:04

+0

@selbie:只是模拟..但我想我找到答案.. – 2011-04-03 12:24:30

回答

-1

那么Microsoft.DirectX.DirectSound.Speakers呢?

甲扬声器对象应具有设置为true下面扬声器类型属性之一:

  • FivePointOne
  • 耳机
  • 单声道
  • SevenPointOne
  • 立体声
  • 环绕
+0

所有道具的retun值相同。我一直打开/关闭耳机,都保持不变.. 耳机:假 FivePointOne:假 单声道:假 四:假 SevenPointOne:假 立体声:真 环绕:假 – 2011-04-03 02:13:21

+0

只有其他裁判我可以找到: 2011-04-03 02:27:43

1

所以...我想我可能发现了一些晦涩REALY ..

任何你们可以检查是否可行? - 你必须有NAudio库引用..

var enumerator = new MMDeviceEnumerator(); 
var d = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia); 
Console.WriteLine(d.Properties[new Guid("46d16a2c-5654-41c0-911e-7860d2bce7ee")].Value.ToString()); 

这返还财产的1(插入式)或0(不插电)..和它的工作对我来说真的很好..

UPDATE:刚刚发布的应用程序CodePlex - iTunesHead

+0

我已经尝试在我的电脑上运行这个项目,并且该特定的GUID似乎不存在(空引用),所以我认为这取决于硬件/驱动程序。我还尝试过在插拔耳机之前/之后比较所有设备属性,并且没有任何更改。 – mbwasi 2012-05-28 19:17:24

+0

是啊..当我发现这个GUID时,这就是我想的,只有在我的戴尔上才是一件事情,所以我在这之后放弃了这个项目。 – 2012-06-02 01:23:27