2011-04-13 6 views
6

현재 XNA를 사용하여 게임을 개발 중이며 약간의 소리 문제가 발생했습니다.시스템에 소리가 들렸는지 확인하십시오. C#

시스템에 사운드 장치가 연결되어 있지 않은 경우 (스피커 등 - Win7에서 스피커 아이콘에 빨간색 십자가가 표시 될 때) 사운드를 재생 /로드 할 때 충돌합니다.

그래서 시스템에 소리가 출력되는지 확인하고 싶습니다. C#에서 가능합니까?

답변

6

단순히 충돌이 처리되지 않고 단순히 처리되지 않은 예외가 발생하지 않았습니까?

이론상 그것은 NoAudioHardwareException입니다.

오디오를 사용하여 무언가를 시도해보십시오 (정적 방법이므로 SoundEffect.MasterVolume이 가능성 있음). 예외를 잡을 수 있는지 확인하십시오. 예외를 잡을 경우 더 이상 오디오 작업을하지 마십시오.

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

코드 전용 답변은 전혀 도움이 될 경향이 없습니다 .........이 의지 할 수 생각합니다. –

+0

내 Windows 7 시스템에서 winmm.dll에 원시'GetNumDevs'가 표시되지 않습니다. 당신은 [waveOutGetNumDevs] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd743860.aspx)를 원하셨습니까? 그리고 당신은 정말로'CharSet.Ansi'를 의미합니까 ?? 거의 항상 최선의 선택이 아니며 AFAICS에는 어쨌든 문자열이 없습니다. – Rup

관련 문제