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) |
그 외 볼것
'Windows > 기타개발' 카테고리의 다른 글
[CSS] input 태그 type 별 개별 적용 (0) | 2013.06.12 |
---|---|
simple webserver by java, socket exam (0) | 2004.05.11 |
[Web] Script 로 @ url 구현하기 (0) | 2003.03.04 |
[소스] Object 의 이동을 아무 각도로나.. (0) | 2003.01.06 |