Wiedergabe von WAVE-Ressourcen
Sie können die PlaySound-Funktion verwenden, um einen Sound wieder zu geben, der als Ressource gespeichert ist. Obwohl dies auch mit der sndPlaySound-Funktion möglich ist, erfordert sndPlaySound, dass Sie die Ressource finden, laden, sperren, entsperren und freischalten. PlaySound erreicht all dies mit einer einzigen Codezeile.
PlaySound-Beispiel
PlaySound("SoundName", hInst, SND_RESOURCE | SND_ASYNC);
sndPlaySound-Beispiel
Das SND MEMORY-Flag gibt an, dass der _ lpszSoundName-Parameter ein Zeiger auf ein In-Memory-Bild der WAVE-Datei ist. Fügen Sie dem Ressourcenskript der Anwendung () den folgenden Eintrag hinzu, um eine WAVE-Datei als Ressource in eine Anwendung einderherzustellen. RC)-Datei.
soundName WAVE c:\sounds\bells.wav
Der Name soundName ist ein Platzhalter für einen Namen, den Sie angeben, um auf diese WAVE-Ressource zu verweisen. WAVE-Ressourcen werden wie andere anwendungsdefinierte Ressourcen geladen und Windows zugegriffen. Die PlayResource-Funktion im folgenden Beispiel gibt eine angegebene WAVE-Ressource wieder.
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;
}
Um eine WAVE-Ressource mit dieser Funktion wiedergibt, übergeben Sie an die Funktion einen Zeiger auf eine Zeichenfolge, die den Namen der Ressource enthält, wie im folgenden Beispiel gezeigt.
PlayResource("soundName");