Reproducir recursos WAVE
Puede usar la función PlaySound para reproducir un sonido almacenado como un recurso. Aunque esto también es posible mediante la función sndPlaySound , sndPlaySound requiere que encuentre, cargue, bloquee, desbloquee y libere el recurso; PlaySound logra todo esto con una sola línea de código.
Ejemplo de PlaySound
PlaySound("SoundName", hInst, SND_RESOURCE | SND_ASYNC);
Ejemplo de sndPlaySound
La marca SND_MEMORY indica que el parámetro lpszSoundName es un puntero a una imagen en memoria del archivo WAVE. Para incluir un archivo WAVE como recurso en una aplicación, agregue la siguiente entrada al script de recursos de la aplicación (. RC) archivo.
soundName WAVE c:\sounds\bells.wav
El nombre soundName es un marcador de posición para un nombre que proporcione para hacer referencia a este recurso WAVE. Los recursos WAVE se cargan y se accede a ellos igual que otros recursos de Windows definidos por la aplicación. La función PlayResource del ejemplo siguiente reproduce un recurso WAVE especificado.
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;
}
Para reproducir un recurso WAVE mediante esta función, pase a la función un puntero a una cadena que contenga el nombre del recurso, como se muestra en el ejemplo siguiente.
PlayResource("soundName");