检查系统是否有健全的c#

本文关键字:系统 是否 检查 | 更新日期: 2023-09-27 17:49:52

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

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

所以,我们想检查一下系统是否有输出声音的能力。这在c#中可能吗?

检查系统是否有健全的c#

您确定它实际上正在崩溃,而不是简单地抛出一个未处理的异常吗?

理论上它应该抛出一个NoAudioHardwareException

尝试做一些音频(SoundEffect.MasterVolume想到作为一种可能性,因为它是一个静态方法),看看你是否可以捕获异常。如果您确实捕获了一个异常,则只需不再执行任何音频工作。

我认为这将帮助 .........

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