Lecture des ressources WAVE
Vous pouvez utiliser la fonction PlaySound pour lire un son stocké en tant que ressource. Bien que cela soit également possible à l’aide de la fonction sndPlaySound , sndPlaySound nécessite que vous trouviez, chargez, verrouillez, déverrouillez et libérez la ressource ; PlaySound réalise tout cela avec une seule ligne de code.
Exemple PlaySound
PlaySound("SoundName", hInst, SND_RESOURCE | SND_ASYNC);
Exemple sndPlaySound
L’indicateur SND_MEMORY indique que le paramètre lpszSoundName est un pointeur vers une image en mémoire du fichier WAVE. Pour inclure un fichier WAVE en tant que ressource dans une application, ajoutez l’entrée suivante au script de ressources de l’application (. RC).
soundName WAVE c:\sounds\bells.wav
Le nom soundName est un espace réservé pour un nom que vous fournissez pour faire référence à cette ressource WAVE. Les ressources WAVE sont chargées et accessibles comme d’autres ressources Windows définies par l’application. La fonction PlayResource dans l’exemple suivant lit une ressource WAVE spécifiée.
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;
}
Pour lire une ressource WAVE à l’aide de cette fonction, passez à la fonction un pointeur vers une chaîne contenant le nom de la ressource, comme illustré dans l’exemple suivant.
PlayResource("soundName");