2011-11-03 150 views
4

我有一個提醒用戶的程序。但現在它只在默認音頻設備上放開。如果用戶插入耳機但不戴,則會出現問題。所以我的問題是:「是否可以將allert聲音設置爲所有音頻設備而不是默認設備?」如何在所有音頻設備上播放聲音

我編程在C#,WPF和.NET 4.0

現在我使用此代碼播放提示音:

private MMDeviceEnumerator devEnum = new MMDeviceEnumerator(); 
private MMDevice defaultDevice; 

....

defaultDevice = devEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia); 

....

defaultDevice.AudioEndpointVolume.MasterVolumeLevel = 1; 

....

alarm.Play(); 

希望你能幫助我:)

+0

我想你的用戶可能有不同的要求,但是我知道如果一個應用程序決定在我的機器上同時播放所有音頻設備,我會非常惱火。 (我有普通揚聲器,杜比數字輸出和USB連接的耳機/麥克風) – asawyer

+0

沒有人在設備之間複製數據。當你枚舉它們時,你可以獨立地開始回放每一個問題。 –

+2

問題是耳機/揚聲器與許多系統上的設備不對應。我認爲設備更像是音頻驅動程序或聲卡。當我插入耳機時,揚聲器會靜音,但設備保持不變。 – CodesInChaos

回答

0

您可能需要使用EnumAudioEndpoints。請訪問這個link,那麼你可能會得到這個概念。

+0

好的...但是。我如何在電腦揚聲器上播放。因爲默認端點也可以是耳機? – Sulby

+0

你有沒有例子說明如何到達揚聲器(不是默認設備) – Sulby

0

我發現迄今爲止,這是不可能在Windows Vista和以後。