PlaySound 함수는 파일 이름, 리소스, 또는 시스템 이벤트에 의해 명시된 소리를 재생한다. (시스템 이벤트는 레지스트리 또는 WIN.INI 파일에 있는 소리와 연관될 수 있다.)


문법


C++


BOOL PlaySound(

    LPCTSTR pszSound,

    HMODULE hmod,

    DWORD fdwSound

);


매개 변수


pszSound


재생할 소리를 지정하는 문자열. 최대 길이는 널 종료 포함 256 자 이다. 이 값이 NULL 이면 wave 형식의 소리 재생을 중지한다. wave 형식이 아닌 소리를 중지시키려면 fdwSound 매개 변수에 SND_PURGE 를 명시하라.


fdwSound 의 3개의 플래그 (SND_ALIAS, SND_FILENAME, 그리고 SND_RESOURCE) 는 이름이 시스템 이벤트, 파일 이름, 또는 리소스 식별자중 어떤 것인지를 결정한다. 이 플래그들이 명시되지 않으면, PlaySound 는 레지스트리 또는 WIN.INI 파일에서 명시된 소리 이름과 연관된 것을 검색한다. 연관된 것이 검색되면, 소리 이벤트가 재생된다. 레지스트리에 관련된 것이 없다면, 파일 이름으로 해석한다.


hmod


읽을 수 있는 리소스를 포함한 실행가능한 파일에 대한 핸들. fdwSound 에 SND_RESOURCE 가 명시되지 않은한 NULL 이어야 한다.


fdwSound


소리 재생에 관한 플래그. 다음 값들이 정의되어있다.


 값

의미 

 SND_APPLICATION

 pszSound 매개 변수는 레지스트리에 있는 응용프로그램 별 별칭이다. 이 플래그는 응용프로그램에 정의된 소리 별칭을 명시하기 위해 SND_ALIAS 또는 SND_ALIAS_ID 플래그와 결합해서 사용할 수 있다.

 SND_ALIAS

 pszSound 매개 변수는 레지스트리 또는 WIN.INI 파일에 있는 시스템 이벤트 별칭이다. SND_FILENAME 또는 SND_RESOURCE 와 함께 사용하지 말라.

 SND_ALIAS_ID

 pszSound 매개 변수는 시스템 이벤트 별칭을 위해 미리 정의된 식별자이다. 아래 주의를 보라.

 SND_ASYNC

 소리는 비동기적으로 재생되고 소리 시작 이후 PlaySound 는 즉시 반환된다. 비동기 적으로 재생되는 wave 형식의 소리를 중지시키려면, pszSound 를 NULL 로 설정하여 PlaySound 를 호출하라.

 SND_FILENAME

 pszSound 매개 변수는 파일 이름이다. 파일을 찾을 수 없다면, SND_NODEFAULT 플래그가 설정되어 있지 않는한 기본 소리를 재생한다.

 SND_LOOP

 pszSound 를 NULL 로 설정하여 PlaySound 를 다시 호출되기 전까지 소리를 반복 재생한다. 이 플래그와 함께 SND_ASYNC 플래그를 설정해야 한다.

 SND_MEMORY

 pszSound 매개 변수는 메모리에 읽혀진 소리를 가리킨다. 자세한 정보는 Playing WAVE Resources 를 보라.

 SND_NODEFAULT

 기본 소리 이벤트를 사용하지 않는다. 소리를 찾을 수 없으면, PlaySound 는 기본 소리 재생없이 조용히 반환한다.

 SND_NOSTOP

 명시된 소리 이벤트는 동일한 프로세스에서 이미 재생중인 다른 소리 이벤트에게 양보한다. 소리를 발생시키는데 필요한 자원이 다른 소리를 재생하는데 사용되어 소리를 재생할 수 없다면, 이 함수는 요청된 소리를 재생하지않고 즉시 FALSE 를 반환한다


 이 플래그가 설정되지 않으면, PlaySound 는 같은 프로세스에서 현재 재생중인 소리를 중지하려한다. 다른 프로세스의 소리 재생에는 영향을 미치지 않는다.

 SND_NOWAIT

 지원되지 않음.


 주석 이전 버전의 문서에서는 이 플래그가 지원된다고 잘못 명시되었다. 이 함수는 이 플래그를 무시한다.

 SND_PURGE

 지원되지 않음.

 SND_RESOURCE

 pszSound 매개 변수는 리소스 식별자이다; hmod 는 리소스를 포함하는 인스턴스를 명시해야한다. 자세한 정보를 Playing WAVE Resources 를 보라.

 SND_SENTRY

 주석 Windows Vista 또는 그 이상이 필요하다.


 이 플래그가 설정되있으면, 함수는 소리가 재생될 때 SoundSentry 이벤트를 발생시킨다.


 SoundSentry 는 소리가 재생될 때 컴퓨터가 시각적 신호를 표시하는 접근성 기능이다. 사용자가 SoundSentry 를 활성화하지 않았다면, 시각적 신호는 표시되지 않는다.

 SND_SYNC

 소리가 동기적으로 재생되고, PlaySound 는 소리 이벤트 완료 이후 반환된다. 기본 동작이다.

 SND_SYSTEM

 주석 Windows Vista 또는 그 이상이 필요하다.


 이 플래그가 설정되면, 소리는 시스템 알림 소리를 위한 오디오 세션에 할당된다. 시스템 음량제어 프로그램 (SndVol) 은 시스템 알림 소리를 제어하는 음량 슬라이더를 표시한다. 이 플래그를 설정하는 것은 소리를 이 음량 슬라이더 아래에 놓는다.


 이 플래그가 설정되지 않으면, 소리는 응용프로그램의 처리를 위한 기본 오디오 세션에 할당된다.


 자세한 정보는 Core Audio APIs 문서를 보라.


반환 값


성공하면 TRUE 를 그외는 FALSE 를 반환한다.


주의


pszSound 에 명시된 소리는 사용 물리 메모리에 맞아야 하고 설치된 wave 형식 오디오 장치 드라이버에서 재생가능해야한다.


PlaySound 는 소리 파일을 위해 다름 경로를 검색한다; 현재 디렉토리; Windows 디렉토리; Windows 시스템 디렉토리; 환경 변수 PATH 에 나열된 디렉토리들; 그리고 네트워크에 매핑된 디렉토리 목록. 명시된 소리를 찾지 못하고 SND_NODEFAULT 플래그가 명시되지 않았다면, PlaySound 는 기본 시스템 이벤트 소리를 대신 사용한다. 시스템 기본 엔트리와 기본 소리를 찾을 수 없으면, 아무 소리도 재생하지 않고 FALSE 를 반환한다.


fdwSound 에 SND_ALIAS_ID 플래그가 명시되있다면, pszSound 매개 변수는 다음 값 중 하나여야 한다.


 값

 설명

 SND_ALIAS_SYSTEMASTERISK

 "SystemAsterisk" 이벤트.

 SND_ALIAS_SYSTEMDEFAULT

 "SystemDefault" 이벤트.

 SND_ALIAS_SYSTEMEXCLAMATION

 "SystemExclamation" 이벤트.

 SND_ALIAS_SYSTEMEXIT

 "SystemExit" 이벤트.

 SND_ALIAS_SYSTEMHAND

 "SystemHand" 이벤트.

 SND_ALIAS_SYSTEMQUESTION

 "SystemQuestion" 이벤트.

 SND_ALIAS_SYSTEMSTART

 "SystemStart" 이벤트.

 SND_ALIAS_SYSTEMWELCOME

 "SystemWelcome" 이벤트.


SND_ASYNC 플래그는 PlaySound 가 소리 재생 완료를 기다리지 않고 즉시 반환하게 한다. SND_MEMORY 와 SND_ASYNC 를 결합하여 사용할 경우, 소리를 담고있는 메모리 버퍼는 소리 재생이 완료될때까지 유효해야한다.


예제


다음 예제는 소리 파일을 재생한다:


C++


PlaySound(TEXT("recycle.wav"), NULL, SND_FILENAME);


다음 예제는 소리파일 리소스를 재생한다:


C++


PlaySound(

    MAKEINTRESOURCE(IDR_WAVE1),

    GetModuleHandle(NULL),

    SND_RESOURCE);


다음 예제는 시스템 이벤트 소리를 재생한다:


C++


PlaySound(TEXT("SystemStart"), NULL, SND_ALIAS);


다음 예제는 이전 예제와 동일하나, 시스템 이벤트 식별자를 사용한다:


C++


PlaySound((LPCTSTR)SND_ALIAS_SYSTEMSTART, NULL, SND_ALIAS_ID);


다음 예제는 레지스트리에 있는 응용프로그램 정의된 소리를 재생한다:


C++


PlaySound(TEXT("MyAppSound"), NULL, SND_ALIAS | SND_APPLICATION);


다음 예제는 비동기 재생중인 소리를 중지시킨다:


C++


PlaySound(NULL, 0, 0);



요구사항


 클라이언트 최소 사양

 Windows 2000 Professional [데스크탑 앱 전용]

 서버 최소 사양

 Windows 2000 Server [데스크탑 앱 전용]

 Header

 Mmsystem.h (include Windows.h)

 Library

 Winmm.lib

 DLL

 Winmm.dll

 유니코드와 ANSI 명칭

 PlaySoundW (유니코드) and PlaySoundA (ANSI)


그 외 볼것


Waveform Audio

Waveform Functions


+ Recent posts