Microsoft Speech Platform
ISpAudio::SetFormat
ISpAudio::SetFormat sets the format of the audio device.
HRESULT SetFormat(
REFGUID rguidFmtId,
const WAVEFORMATEX *pWaveFormatEx
);
Parameters
- rguidFmtId
- [in] The REFGUID for the format to set. Typically this will be SPDFID_WaveFormatEx. This is required for the SAPI multimedia objects.
- pWaveFormatEx
- [in] Address of the WAVEFORMATEX structure containing the wave file format information.
Return values
Value | Description |
---|---|
S_OK | Function completed successfully. See note about supported formats. |
E_INVALIDARG | pWaveFormatEx is invalid or bad. |
SPERR_DEVICE_BUSY | Device is not in the SPAS_CLOSED state. |
SPERR_UNINITIALIZED | Audio stream not initialized. |
SPERR_UNSUPPORTED_FORMAT | Specified format is not supported. |
FAILED(hr) | Appropriate error message. |
Remarks
This method can be called only when the audio device is in the SPAS_CLOSED state. Note that successfully setting the format on an audio device does not necessarily mean that the format is supported. An attempt must be made to place the device into a non-closed state (SPAS_STOP, SPAS_PAUSE or SPAS_RUN) to be sure that the device can handle the format.
The format can be retrieved by calling the ISpStreamFormat::GetFormat method.
The helper class CSpStreamFormat and the SPSTREAMFORMAT enumeration can be used to avoid the possibility of typos or mistakes when filling in the WAVEFORMATEX structure.