Playing a Waveform-Audio File

The following example opens a waveform-audio device and plays the waveform-audio file specified by the lpszWAVEFileName parameter.

// Plays a specified waveform-audio file using MCI_OPEN and MCI_PLAY.

// Returns when playback begins. Returns 0L on success, otherwise

// returns an MCI error code.

DWORD playWAVEFile(HWND hWndNotify, LPSTR lpszWAVEFileName)

{

UINT wDeviceID;

DWORD dwReturn;

MCI_OPEN_PARMS mciOpenParms;

MCI_PLAY_PARMS mciPlayParms;

// Open the device by specifying the device and filename.

// MCI will choose a device capable of playing the specified file.

mciOpenParms.lpstrDeviceType = "waveaudio";

mciOpenParms.lpstrElementName = lpszWAVEFileName;

if (dwReturn = mciSendCommand(0, MCI_OPEN,
MCI_OPEN_TYPE | MCI_OPEN_ELEMENT, (DWORD)(LPVOID) &mciOpenParms))

{

// Failed to open device. Don't close it; just return error.

return (dwReturn);

}

// The device opened successfully; get the device ID.

wDeviceID = mciOpenParms.wDeviceID;

// Begin playback. The window procedure function for the parent

// window will be notified with an MM_MCINOTIFY message when

// playback is complete. At this time, the window procedure closes

// the device.

mciPlayParms.dwCallback = (DWORD) hWndNotify;

if (dwReturn = mciSendCommand(wDeviceID, MCI_PLAY, MCI_NOTIFY,

(DWORD)(LPVOID) &mciPlayParms))

{

mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);

return (dwReturn);

}

return (0L);

}

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples