Using SndPlaySound to Play Wave FilesLast reviewed: August 17, 1995Article ID: Q133064 |
The information in this article applies to:
The sndPlaySound() multimedia API function is capable of playing memory images using the SND_MEMORY flag if the waveform audio exists as a .WAV file, a wave resource, or is dynamically constructed by the application. When using the SND_MEMORY flag, the data must be allocated from global memory using the GPTR and GMEM_SHARED flags and possess both the RIFF and PCM information. The following code demonstrates how to use the SND_MEMORY flag.
{ // Sample code to demonstrate SND_MEMORY flag and memory files.
// Sound resource bound within executable.
if (hWaveRes = FindResource(ghInst,"TADA","WAVE"))
{ // Resource intact; load into GLOBAL MEMORY/GMEM_SHARED memory
if (hGlobMem = LoadResource(ghInst,hWaveRes))
{ // Load resource into global memory and play.
// Play sound resource via sndPlaySound() using
// SND_MEMORY flag.
// Application waits until sndPlaySound completes
// given SND_SYNC.
// SND_MEMORY (first parameter is ptr to memory image
// vs. filename).
sndPlaySound((LPSTR)LockResource(hGlobMem),
SND_SYNC | SND_MEMORY);
FreeResource(hGlobMem); // Required in 16-bit
// applications.
} // Load resource into global memory and play.
else MessageBox(NULL,"No resource!","Multimedia Sampler!",
MB_ICONHAND);
GlobalFree(hGlobMem);
} // Resource found.
else MessageBox(NULL,"Lost resource!","Multimedia Sampler!",
MB_ICONHAND);
}
|
Additional reference words: 3.10 3.50 kbinf win16sdk mmio mmioOpen mmioRead
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |