Share via


Note

Please see Azure Cognitive Services for Speech documentation for the latest supported speech solutions.

Microsoft Speech Platform

ISpAudio::SetFormat

ISpAudio::SetFormat sets the format of the audio device.

<pre IsFakePre="true" xmlns="http://www.w3.org/1999/xhtml"> <strong>HRESULT SetFormat(</strong> <strong>REFGUID</strong> <em>rguidFmtId</em>, <strong>const <a runat="server" href="jj127893(v=msdn.10).md">WAVEFORMATEX</a></strong> *<em>pWaveFormatEx</em> <strong>);</strong> </pre>

Parameters

  • rguidFmtId
    [in] The REFGUID for the format to set. Typically this will be SPDFID_WaveFormatEx. This is required for the multimedia objects in the Speech Platform.
  • pWaveFormatEx
    [in] Address of the WAVEFORMATEX structure containing the WAV 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.