检查系统是否有声音C#

我们目前正在开发一款使用XNA的游戏,我们偶然发现了一个小问题。

当系统没有插入声音设备时(扬声器等 – 当Win7在扬声器图标上显示红叉时),当尝试播放/加载声音时它会崩溃。

因此,我们想检查系统是否具有输出声音的能力。 在C#中有可能吗?

你确定它实际上是崩溃了,而不是简单地抛出未处理的exception吗?

理论上它应该抛出NoAudioHardwareException

尝试用音频做一些事情( SoundEffect.MasterVolume作为一种可能性,因为它是一个静态方法)并且看看你是否可以捕获exception。 如果您确实发现exception,则不要再进行其他音频工作。

我认为这会有所帮助………

 [DllImport("winmm.dll", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] public static extern long GetNumDevs(); private void Button1_Click(System.Object sender, System.EventArgs e) { long I = 0; I = GetNumDevs(); if (I > 0) { Interaction.MsgBox("Your system can play sound files."); } else { Interaction.MsgBox("Your system can not play sound files."); } }