一般情況下如下代碼用來調節錄音"麥克風音量
代碼:
// 打開Mixer裝置
mixerOpen( &m_hMixer, 0, 0, 0, MIXER_OBJECTF_MIXER );
MIXERLINE MixerLine;
// 結構體的大小
MixerLine.cbStruct = sizeof(MixerLine);
// 錄制裝置總線
MixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_WAVEIN;
// 得到錄制總線中的連接配接數
mixerGetLineInfo( (HMIXEROBJ)m_hMixer, &MixerLine,
MIXER_OBJECTF_HMIXER | MIXER_GETLINEINFOF_COMPONENTTYPE );
// 将連接配接數儲存
DWORD dwConnections = MixerLine.cConnections;
// 準備擷取麥克風裝置的ID
DWORD dwLineID = 0;
for ( DWORD i = 0; i < dwConnections; i++ )
{
// 枚舉每一個裝置,當Source的ID等于目前的疊代記數
MixerLine.dwSource = i;
// 根據SourceID獲得連接配接的資訊
mr = mixerGetLineInfo( (HMIXEROBJ)m_hMixer, &MixerLine,
MIXER_OBJECTF_HMIXER | MIXER_GETLINEINFOF_SOURCE );
// 判斷函數執行錯誤
if ( mr != 0 )
{
break;
}
// 如果目前裝置類型是麥克風,則跳出循環。
if ( MixerLine.dwComponentType ==
MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE )
{
dwLineID = MixerLine.dwLineID;
break;
}
}
// 如果沒有找到,傳回失敗。
if ( dwLineID == 0 )
{
return FALSE;
}
但有時會出錯這是因為mixerOpen( &m_hMixer, 0, 0, 0, MIXER_OBJECTF_MIXER )中裝置id不對而導緻的錯誤
預設輸入裝置id為0 ,但有些為1,是以改為mixerOpen( &m_hMixer, 1, 0, 0, MIXER_OBJECTF_MIXER ) 即可。