【发布时间】:2011-12-21 03:49:01
【问题描述】:
我有一个提醒用户的程序。但现在它只在默认音频设备上发出警报。如果用户已插入耳机但未佩戴,这将是一个问题。所以我的问题是:“是否可以将警报声音设置为所有音频设备而不是仅默认设备?”
我正在使用 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();
希望你能帮助我:)
【问题讨论】:
-
我想您的用户可能有不同的要求,但我知道如果应用程序决定同时在我机器上的所有音频设备上播放,我会非常恼火。 (我有普通扬声器、杜比数字输出和连接的 USB 耳机/麦克风)
-
没有人可以在设备之间复制数据。当您枚举它们时,您可以独立地开始播放每个有问题的。
-
问题是耳机/扬声器与许多系统上的设备不对应。我认为设备更像是音频驱动程序或声卡。当我插入耳机时,扬声器会静音,但设备保持不变。
-
我知道所有设备都在发出警报会让用户感到恼火,但这也是目的。 :D
-
我无法弄清楚如何仅在扬声器中播放。有人可以帮帮我吗?无论是否插入耳机,我都需要始终在计算机扬声器中播放声音。