C #, .NET에서 사운드를 재생하는 방법


124

C # /. NET으로 작성된 Windows 응용 프로그램이 있습니다.

버튼을 클릭 할 때 특정 사운드를 재생하려면 어떻게해야합니까?

답변:


233

다음을 사용할 수 있습니다.

System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();

32
새로운 사용자가 .... SoundPlayer가 System.Media에 속한다는 것을 이해할 수 있기 때문 완벽한 해답입니다
Khilen Maniyar

30
@Ali ... stackoverflow.com/questions/2361857/what-does-means-in-c-sharp "다음 문자열을 리터럴로 해석하는 것을 의미합니다. 의미, 문자열의 \는 실제로"\ " 출력, 리터럴 문자 "를 의미하는"\\ "넣을 필요보다는
프라 빈

@Praveen의 답변은 또 다른 유익한 사실을 제공했습니다. "@"기호를 요청한 Dexter에게 감사드립니다.
Allen Linatoc 2015

2
@bporter, 이것은 mp3 파일에서 작동하지 않는 것 같습니다. wav 형식으로 만 제한됩니다
Najeeb

이 API가 얼마나 부끄러운 일입니까! MP3 나 MIDI 파일을 재생하지 않습니다. 나에게는 완전히 쓸모가 없습니다. Windows는 최소한 Windows XP부터 MP3 및 MIDI를 기본적으로 지원합니다. Microsoft에 대한 수치!
Elmue

91

예를 들어 SystemSound 를 사용할 수 있습니다 System.Media.SystemSounds.Asterisk.Play();.


굉장히 유용하다. 시스템 기본값을 사용하는 것이 도움이 될 수 있습니다.
Babak.Abad 2014-04-30

4
Windows 설정 (최소한 최신 Windows)에서 시스템 사운드를 끄면 아무 것도 재생되지 않는다는 점에 유의해야합니다.
Artholl

32

Windows Forms의 경우 한 가지 방법은 SoundPlayer

private void Button_Click(object sender, EventArgs e)
{
    using (var soundPlayer = new SoundPlayer(@"c:\Windows\Media\chimes.wav")) {
        soundPlayer.Play(); // can also use soundPlayer.PlaySync()
    }
}

MSDN 페이지

이것은 WPF에서도 작동하지만 MSDN 페이지 사용과 같은 다른 옵션이 있습니다 MediaPlayer .


1
더 좋은 점은 프로덕션 코드에서 버튼을 누를 때마다 생성하는 것보다 한 번만 생성하고 여러 번 사용하는 것입니다.
Shibumi 2012 년

ButtonClickC # 이름 지정 스타일을 더 많이 따르는 것처럼 보이기 때문에 해당 함수의 이름을 .
Ethan Bierlein

1
@EthanBierlein는 - 내가 대답을 게시 할 때 아마 명명 규칙이었다)
ChrisF

1
허. 그래서 그게 오래된 대회 였나요?
Ethan Bierlein

@EthanBierlein 그것은 여전히 ​​Visual Studio의 Windows Forms 프로젝트에 의해 자동 생성 된 것입니다
JAD

13

추가 정보.

이것은 Windows 환경에 매끄럽게 맞추기를 원하는 응용 프로그램에 대한 약간 높은 수준의 대답입니다. 특정 사운드 재생에 대한 기술적 세부 사항은 다른 답변에서 제공되었습니다. 그 외에도 항상 다음 두 가지 사항에 유의하십시오.

  1. 일반적인 시나리오에서 다섯 표준 시스템 사운드를 사용 , 즉,

    • 별표 -현재 이벤트를 강조하고 싶을 때 재생

    • 질문 - 질문으로 재생 (시스템 메시지 상자 창에서이 질문을 재생 함)

    • 느낌표 - 느낌표 아이콘으로 재생 (시스템 메시지 상자 창에서이 아이콘 재생)

    • 경고음 (기본 시스템 사운드)

    • 치명적 정지 ( "Hand")-오류로 재생 (시스템 메시지 상자 창에서이 항목 재생)
       

    수업 방법은 System.Media.SystemSounds당신을 위해 그것들을 재생할 것입니다.
     

  2. 사운드 제어판 에서 사용자가 사용자 정의 할 수있는 기타 사운드 구현

    • 이렇게하면 사용자가 애플리케이션에서 사운드를 쉽게 변경하거나 제거 할 수 있으며이를 위해 사용자 인터페이스를 작성할 필요가 없습니다. 이미 존재합니다.
    • 각 사용자 프로필은 고유 한 방식으로 이러한 사운드를 재정의 할 수 있습니다.
    • 어떻게:

이 추가 정보에 감사드립니다. 예제를 추가하고 싶습니다. System.Media.SystemSounds.Hand.Play(); Thread.Sleep(2000);Play the sound Hand . 비동기 적으로 재생된다는 점에 유의하십시오. 여기에서는 사운드가 완료 될 때까지 대기하는 sleep 명령을 추가했습니다. 기다리지 않고 다른 사운드를 재생하면 이전 사운드가 즉시 중지됩니다.
Matt


2

C #을 사용하여 Windows 형식의 오디오 파일을 재생하려면 다음과 같이 간단한 예제를 확인하십시오.

1. Visual Studio (VS-2008 / 2010 / 2012)-> 파일 메뉴-> 새 프로젝트를 클릭합니다.

2. New Project에서-> Windows Forms Application-> Give Name을 클릭 한 다음 OK를 클릭합니다.

새로운 "Windows Forms"프로젝트가 열립니다.

3. 도구 상자에서 Windows Form으로 Button 컨트롤을 끌어서 놓습니다.

4. 버튼을 두 번 클릭하여 기본 Click 이벤트 처리기를 자동으로 만들고 다음 코드를 추가합니다.

이 코드는 파일 열기 대화 상자를 표시하고 결과를 다음 단계에서 만들 "playSound"라는 메서드에 전달합니다.

 OpenFileDialog dialog = new OpenFileDialog();
 dialog.Filter = "Audio Files (.wav)|*.wav";


if(dialog.ShowDialog() == DialogResult.OK)
{
  string path = dialog.FileName;
  playSound(path);
}

5. button1_Click 이벤트 핸들러 아래에 다음 메소드 코드를 추가합니다.

 private void playSound(string path)
 {
   System.Media.SoundPlayer player = new System.Media.SoundPlayer();
   player.SoundLocation = path;
   player.Load();
   player.Play();
 }

6. 이제 F5 키를 눌러 코드를 실행하여 애플리케이션을 실행 해 보겠습니다.

7. 버튼을 클릭하고 오디오 파일을 선택합니다. 파일이로드되면 사운드가 재생됩니다.

초보자에게 유용한 예가 되었으면합니다 ...


1

먼저 Resources에 .wav 파일을 추가해야한다고 생각합니다. 예를 들어 Sound.wav라는 사운드 파일이 있습니다. Sound.wav 파일을 Resources에 추가 한 후 다음 코드를 사용할 수 있습니다.

System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.Sound);
player.Play();

이것은 소리를 재생하는 또 다른 방법입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.