次の方法で共有


非標準形式のサポートの決定

[このページに関連付けられている機能 、波形オーディオは、従来の機能です。 WASAPIオーディオ グラフに置き換わりました。 WASAPIオーディオ グラフは、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、波形オーディオではなく WASAPIオーディオ グラフを使用することを強くお勧めします。 Microsoft は、従来の 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定数を指定します。