WAVE 리소스 재생
PlaySound 함수를 사용하여 리소스로 저장된 소리를 재생할 수 있습니다. sndPlaySound 함수를 사용할 수도 있지만 sndPlaySound를 사용하려면 리소스를 찾고, 로드하고, 잠그고, 잠금 해제하고, 해제해야 합니다. PlaySound는 한 줄의 코드로 이 모든 것을 달성합니다.
PlaySound 예제
PlaySound("SoundName", hInst, SND_RESOURCE | SND_ASYNC);
sndPlaySound 예제
SND_MEMORY 플래그는 lpszSoundName 매개 변수가 WAVE 파일의 메모리 내 이미지에 대한 포인터임을 나타냅니다. WAVE 파일을 애플리케이션에 리소스로 포함하려면 애플리케이션의 리소스 스크립트()에 다음 항목을 추가합니다. RC) 파일.
soundName WAVE c:\sounds\bells.wav
soundName 이름은 이 WAVE 리소스를 참조하기 위해 제공하는 이름의 자리 표시자입니다. WAVE 리소스는 다른 애플리케이션 정의 Windows 리소스와 마찬가지로 로드되고 액세스됩니다. 다음 예제의 PlayResource 함수는 지정된 WAVE 리소스를 재생합니다.
BOOL PlayResource(LPSTR lpName)
{
BOOL bRtn;
LPSTR lpRes;
HANDLE hResInfo, hRes;
// Find the WAVE resource.
hResInfo = FindResource(hInst, lpName, "WAVE");
if (hResInfo == NULL)
return FALSE;
// Load the WAVE resource.
hRes = LoadResource(hInst, hResInfo);
if (hRes == NULL)
return FALSE;
// Lock the WAVE resource and play it.
lpRes = LockResource(hRes);
if (lpRes != NULL) {
bRtn = sndPlaySound(lpRes, SND_MEMORY | SND_SYNC |
SND_NODEFAULT);
UnlockResource(hRes);
}
else
bRtn = 0;
// Free the WAVE resource and return success or failure.
FreeResource(hRes);
return bRtn;
}
이 함수를 사용하여 WAVE 리소스를 재생하려면 다음 예제와 같이 리소스 이름이 포함된 문자열에 대한 포인터를 함수에 전달합니다.
PlayResource("soundName");