Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
[O recurso associado a esta página, Waveform Audio, é um recurso legado. Foi substituído por WASAPI e Audio Graphs. WASAPI e Audio Graphs foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda vivamente que o novo código utilize WASAPI e Audio Graphs em vez de Waveform Audio, sempre que possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Você pode usar a função PlaySound para reproduzir um som armazenado como um recurso. Embora isso também seja possível usando a função sndPlaySound , sndPlaySound requer que se encontre, carregue, bloqueie, desbloqueie e libere o recurso; PlaySound consegue fazer tudo isso com uma única linha de código.
Exemplo de PlaySound
PlaySound("SoundName", hInst, SND_RESOURCE | SND_ASYNC);
Exemplo de sndPlaySound
O sinalizador SND_MEMORY indica que o parâmetro lpszSoundName é um ponteiro para uma imagem na memória do arquivo WAVE. Para incluir um arquivo WAVE como um recurso em um aplicativo, adicione a seguinte entrada ao script de recurso do aplicativo (. RC).
soundName WAVE c:\sounds\bells.wav
O nome soundName é um espaço reservado para um nome que você fornece para se referir a esse recurso WAVE. Os recursos WAVE são carregados e acessados como outros recursos do Windows definidos pelo aplicativo. A função PlayResource no exemplo a seguir reproduz um recurso WAVE especificado.
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;
}
Para reproduzir um recurso WAVE usando essa função, passe para a função um ponteiro para uma cadeia de caracteres que contém o nome do recurso, conforme mostrado no exemplo a seguir.
PlayResource("soundName");