このページに関連付けられている機能、波形オーディオは、従来の機能です。 これは、WASAPI と オーディオグラフに取って代わられています。 WASAPI と Audio Graph は、Windows 10 および Windows 11 用に最適化されています。 新しいコードでは、可能な場合は、波形オーディオ ではなく、WASAPI とオーディオ グラフ を使用することを強くお勧めします。 従来の API を使用する既存のコードは、可能であれば新しい API を使用するように書き直すよう提案しています。
デバイスが特定の形式 (標準または非標準) をサポートしているかどうかを確認するには、WAVE_FORMAT_QUERY フラグを指定して waveOutOpen 関数を呼び出します。 次の例では、この手法を使用して、波形オーディオ デバイスが指定した形式をサポートしているかどうかを判断します。
// Determines whether the specified waveform-audio output device
// supports a specified waveform-audio format. Returns
// MMSYSERR_NOERROR if the format is supported, WAVEERR_BADFORMAT if
// the format is not supported, and one of the other MMSYSERR_ error
// codes if there are other errors encountered in opening the
// specified waveform-audio device.
MMRESULT IsFormatSupported(LPWAVEFORMATEX pwfx, UINT uDeviceID)
{
return (waveOutOpen(
NULL, // ptr can be NULL for query
uDeviceID, // the device identifier
pwfx, // defines requested format
NULL, // no callback
NULL, // no instance data
WAVE_FORMAT_QUERY)); // query only, do not open device
}
非標準フォーマットのサポートを決定するこの手法は、波形オーディオ入力デバイスにも適用されます。 唯一の違いは、waveInOpen 関数が、waveOutOpen の代わりに使用され、形式のサポートを照会することです。
システム内のいずれかの波形オーディオ デバイスで特定の波形オーディオ データ形式がサポートされているかどうかを確認するには、前の例で示した手法を使用しますが、uDeviceID パラメーターにWAVE_MAPPER定数を指定します。