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

C# 如何在所有音频设备上播放声音,c#,wpf,audio,device,C#,Wpf,Audio,Device,我有一个程序正在提醒用户。但是现在它只在默认的音频设备上运行。如果用户已插入耳机但未佩戴,则会出现问题。因此,我的问题是:“是否可以将allert声音设置为所有音频设备,而不是仅设置为默认设备?” 我正在用c#、wpf和.NET4.0编程 现在我正在使用此代码播放警报声音: private MMDeviceEnumerator devEnum = new MMDeviceEnumerator(); private MMDevice defaultDevice; 希望您能帮助我:)您可能需

我有一个程序正在提醒用户。但是现在它只在默认的音频设备上运行。如果用户已插入耳机但未佩戴,则会出现问题。因此,我的问题是:“是否可以将allert声音设置为所有音频设备,而不是仅设置为默认设备?”

我正在用c#、wpf和.NET4.0编程

现在我正在使用此代码播放警报声音:

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


希望您能帮助我:)

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

到目前为止,我发现这在windows vista和更高版本中是不可能的。

我想您的用户可能有不同的要求,但我知道如果应用程序决定同时在我机器上的所有音频设备上播放,我会非常恼火。(我有普通扬声器、杜比数字输出和usb耳机/麦克风连接)没有人在设备之间复制数据。当您列举它们时,您可以独立地在每个有问题的设备上开始播放。问题是,在许多系统中,耳机/扬声器与设备并不对应。我认为设备更像是音频驱动程序或声卡。当我插入耳机时,扬声器会静音,但设备保持不变。我知道它会提醒用户所有设备都发出警报,但这也是目的:我不知道怎么在扬声器里演奏。有人能帮我吗?无论是否插入耳机,我都需要在电脑扬声器中播放声音。好的。。。但是后来。如何在电脑扬声器上播放。因为默认端点也可以是耳机?您是否有仅接触扬声器(而非默认设备)的示例
defaultDevice = devEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);
defaultDevice.AudioEndpointVolume.MasterVolumeLevel = 1;
alarm.Play();