共用方式為


播放 WAVE 資源

您可以使用 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");