如何在所有音频设备上播放声音

问题描述:

我有一个提醒用户的程序。但现在它只在默认音频设备上放开。如果用户插入耳机但不戴,则会出现问题。所以我的问题是:“是否可以将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

您可能需要使用EnumAudioEndpoints。请访问这个link,那么你可能会得到这个概念。

+0

好的...但是。我如何在电脑扬声器上播放。因为默认端点也可以是耳机? – Sulby

+0

你有没有例子说明如何到达扬声器(不是默认设备) – Sulby

我发现迄今为止,这是不可能在Windows Vista和以后。