與此頁面相關聯的功能,波形音訊,是舊版功能。 WASAPI 和 Audio Graphs已取代它。 WASAPI 和 音訊圖形 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新程式代碼盡可能使用 WASAPI 和 Audio Graphs,而不是 波波音頻。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
您可以使用 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
name 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");