检查系统是否有声音C#

时间:2011-04-13 13:18:23

标签: c# xna audio

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

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

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

2 个答案:

答案 0 :(得分:6)

你确定它实际上是崩溃了,而不仅仅是抛出一个未处理的异常吗?

理论上它应该抛出NoAudioHardwareException

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

答案 1 :(得分:0)

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

[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.");
    }
}