2011-04-03 148 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