我们目前正在开发一款使用XNA的游戏,我们偶然发现了一个小问题。
如果系统没有插入声音设备(扬声器等 - 当Win7在扬声器图标上显示红叉时),则在尝试播放/加载声音时会崩溃。
因此,我们想检查系统是否具有输出声音的能力。是否有可能在C#?
答案 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.");
}
}