2011-03-04 5 views
10

WinForms 앱이 있습니다. 이 앱에는 경고가 표시 될 때 재생할 사운드를 선택할 수있는 환경 설정 섹션이 있습니다.Windows에서 사운드 선택 및 재생

"중요한 중지", "중요한 신호음"등과 같이 사용자가 Windows에서 저장 한 소리 중에서 선택할 수있는 콤보 박스가있을 수 있습니까? "제어판">> "소리 및 경고"섹션에 있습니다.

사운드를 테스트하기 위해 재생 버튼을 사용할 수도 있습니까?

// Plays the sound associated with the Asterisk system event. 
System.Media.SystemSounds.Asterisk.Play(); 

SystemSounds 클래스는 다음과 같은 미리 정의 된 시스템 소리 포함 : 당신은 시스템을 재생할 수있는 API를 필요로하지 않는

+0

소리의 세트는 확장 어쩌면이다 Visual Studio 빌드 사운드가 주목 되었습니까? superuser.com에서 레지스트리에 저장되어있는 위치를 물어보십시오. Windows의 표준 부품을 재 설계하지 않도록하십시오. –

답변

10

을보십시오이 :

private void Form1_Load(object sender, EventArgs e) 
    { 

     var systemSounds = new[] 
           { 
            System.Media.SystemSounds.Asterisk, 
            System.Media.SystemSounds.Beep, 
            System.Media.SystemSounds.Exclamation, 
            System.Media.SystemSounds.Hand, 
            System.Media.SystemSounds.Question 
           }; 

     comboBox1.DataSource = systemSounds; 

     comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged); 
    } 

    void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     ((System.Media.SystemSound)comboBox1.SelectedItem).Play(); 
    } 
11

그냥 같은 코드 쓰기 소리

  • 별표를
  • 느낌표
  • 질문

다른 모든 소리가 레지스트리에서 원하는 소리를 읽고 다음과 같은 코드로 연주 필요합니다

SoundPlayer simpleSound = new SoundPlayer(@"c:\Path\To\Your\Wave\File.wav"); 
8

물론! 찾고있는 모든 소리는 System.Media.SystemSounds class을 통해 사용할 수 있습니다. 여기서 소리가 나는 이벤트 유형에 해당하는 public properties으로 표시됩니다.

또한 SystemSound class의 개체는 해당 사운드를 비동기 적으로 재생하기 위해 호출 할 수있는 Play method을 제공합니다.

그래서 예를 들어, "중요 정지"소리를 재생하려면, 당신은 단순히 다음과 같은 코드를 작성합니다

System.Media.SystemSounds.Hand.Play();