Visual Studio 2010 MFC で WASAPI を使い、サンプリング 8000Hz,16Bit モノラルの再生を行おうとしています。
IAudioClient *pAdClient = NULL; --中略-- WAVEFORMATEX wf; memset( &wf, 0, sizeof(wf) ); wf.wFormatTag = WAVE_FORMAT_PCM; wf.nChannels = 1; <====== モノラル(=1)としたい wf.nSamplesPerSec = 8000; wf.wBitsPerSample = 16; wf.nBlockAlign = wf.nChannels * wf.wBitsPerSample / 8; wf.nAvgBytesPerSec = wf.nSamplesPerSec * wf.nBlockAlign; wf.cbSize = 0; // サポートチェック ret = pAdClient->IsFormatSupported( AUDCLNT_SHAREMODE_EXCLUSIVE,(WAVEFORMATEX*)&wf,NULL ); if( FAILED(ret) ) { printf( "unsupport format. Code=%X\n",rc ); return FALSE; }
上記の nChannels を 1とすれば、モノラルとして扱われると考えていたのですが、これを行うと IsFormatSupportedの戻り値が 0x88890008 (AUDCLNT_E_UNSUPPORTED_FORMAT)となってしまいます。
nChannels を ステレオ(=2)とすれば、正常(S_OK)が返ります。
WSAPIでは、モノラル設定はできないのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。