C++/summary

배경음악을 넣어보자. PlaySound()

gandus 2010. 5. 20. 23:39
일단 준비 단계로 헤더파일을 인클루드 한다.

#include <mmsystem.h>    
#pragma comment(lib,"winmm.lib") 

그리고 프로젝트 내에 .wav 파일을 넣어주고

PlaySound(TEXT("bgm.wav"), NULL,SND_FILENAME | SND_ASYNC | SND_LOOP | SND_NODEFAULT);

이런 식으로 옵션을 넣어준다. 중강 중간에느 | (OR) 을 적어준다.




여러가지 옵션 내용으로는





플래그명                    의미


SND_APPLICATION     매개변수 pszSound는 응용프로그램에 등록된 변수명이다.
                                응용프로그램에 정의된 소리 변수명을 기입하기위해
                                당신은 이 플래그를 SND_ALIAS 또는 SND_ALIAS_ID와 함께
                                쓸수 있다.

 

SND_ALIAS                매개변수 pszSound는 레지스토리나 WIN.INI에 있는
                                시스템이벤트 변수이다. SND_FILENAME 또는 SND_RESOURCE와
                                함께 쓰지말아야한다.

 

SND_ALIAS_ID            매개변수 pszSound는 시스템 이벤트 변수에대해 미리 정의된
                                변수명이다.  밑에 코멘트를 보십시오.

 

SND_ASYNC              소리가 비동기로 연주되고 소리가 시작된후 즉시 반환한다
                                비동기적으로 연주되는 wave형식의 소리를 끝내기 위해서는
                                매개변수 pszSound 에 NULL을 설정하고 PlaySound를 호출
                                해야한다

 

SND_FILENAME         매개변수 pszSound는 파일이름이다. 만약 파일을 발견하지 못했을경우
                                SND_NODEFAULT 플래그가 설정되어 있지않다면 기본 소리가
                                재생된다

 

SND_LOOP                매개변수 pszSound을 설정하고 PlaySound를 다시 호출하기전까지
                               반복하며 연주를 한다. 만약 이 플래그가 설정되어있다면
                               또한 당신은 반드시 SND_ASYNC 플래그도 설정해야한다.

 

SND_MEMORY          매개변수 pszSound는 메모리에서 로드된 소리의 포인터이다
                               좀더 많은 정보를 원한다면  Playing WAVE Resources(링크)를
                               보십시오. 

 

SND_NODEFAULT      어떠한 기본 사운드 이벤트도 사용하지 않는다.
                               만약 소리가 발견되어지지 않았다면 PlaySound는 기본소리를
                               재생하지 않고 반환한다라는 것이다

 

SND_NOSTOP          기입된 사운드 이벤트는 이미 연주되고 있는 사운드 이벤트에게 양보할것이다.
                              만약[because the resource needed to generate that 
                              sound is busy playing another sound] 사운드가 연주 되어 지지 못하면
                              함수는 즉시 요구된 사운드의 재생 없이  FALSE를 반환한다
                              만약 이 플래그가 기입되어 있지 않다면 장치가 새로운 사운드를 연주 하기위해
                              PlaySound는 현재 재생중인 사운드를 정지하려한다.

 

SND_NOWAIT          만약 드라이버가 사용중이라면 즉시 사운드의 재생없이 반환한다.

 

SND_PURGE           사운드들은 정지된다. 만약  pszSound가 NULL이 아니라면
                             모든 기입된 사운드의 instance 는 정지한다. 만약 pszSound 가 NULL이면
                             호출(calling task)대신에 모든 사운드를 연주한다.
                             당신은 반드시 SND_RESOURCE 이벤트를 멈추기위해 instance handle을
                             기입해야한다

 

SND_RESOURCE     매개변수 pszSound는 리소스 변수이다. 반드시 hmod는 리소스를 담고 있는 
                             instance이어야한다. 더많은 정보를 보고 싶다면 Playing WAVE Resources(링크)를
                             보십시오

 

SND_SYNC             사운드는 동기적으로 연주되고 사운드 이벤트가 완료 된후 PlaySound는 반환한다
                             이것은 기본 동작이다.



PlaySound(TEXT("20090214050349.wav"), NULL,SND_FILENAME | SND_ASYNC | SND_LOOP | SND_NODEFAULT);

배경음은 이런식으로 작성..