Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
[Funkcja skojarzona z tą stroną, Waveform Audio, jest starszą funkcją. Został zastąpiony przez WASAPI i Audio Graphs. WASAPI i Audio Graphs zostały zoptymalizowane dla systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał WASAPI i Audio Graphs zamiast Waveform Audio, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]
Możesz użyć funkcji PlaySound, aby odtworzyć dźwięk przechowywany jako zasób. Chociaż jest to również możliwe przy użyciu funkcji sndPlaySound, sndPlaySound wymaga znajdowania, ładowania, blokowania, odblokowywania i zwalniania zasobu; PlaySound osiąga to wszystko za pomocą jednego wiersza kodu.
Przykład PlaySound
PlaySound("SoundName", hInst, SND_RESOURCE | SND_ASYNC);
Przykład sndPlaySound
Flaga SND_MEMORY wskazuje, że parametr lpszSoundName jest wskaźnikiem do obrazu w pamięci pliku WAVE. Aby dołączyć plik WAVE jako zasób do aplikacji, dodaj następujący wpis do skryptu zasobu aplikacji (. Plik RC).
soundName WAVE c:\sounds\bells.wav
Nazwa soundName jest symbolem zastępczym nazwy, którą podajesz, aby odwoływać się do tego zasobu WAVE. Zasoby WAVE są ładowane i dostępne tak samo jak inne zasoby systemu Windows zdefiniowane przez aplikację. Funkcja PlayResource w poniższym przykładzie odtwarza określony zasób 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;
}
Aby odtworzyć zasób WAVE przy użyciu tej funkcji, przekaż do funkcji wskaźnik do ciągu zawierającego nazwę zasobu, jak pokazano w poniższym przykładzie.
PlayResource("soundName");