不同的声卡录音控制里的设备不同,如何获得录音控制中麦克风的ID(* 是录音控制中的麦克风,不是音量控制中的麦克风)。我的机器录音控制中麦克风的排号是6,从0开始计数。我该怎样获得

解决方案 »

  1.   

    没人回答自己来    MIXERCONTROL volCtrl;
        HMIXER hmixer;
        MIXERLINE mxl;
        UINT uLineIndex;    if(mixerOpen(&hmixer, 0, 0, 0, 0))
    return false;
        mxl.cbStruct = sizeof(mxl);
        //获取录音麦克风设备
        mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_WAVEIN;
        //得到录制总线中的连接数
        mixerGetLineInfo((HMIXEROBJ)hmixer, &mxl, MIXER_OBJECTF_HMIXER | MIXER_GETLINEINFOF_COMPONENTTYPE);
        DWORD dwConnections = mxl.cConnections; //记录设备总数
        for (DWORD i = 0; i < dwConnections; i++)
        {
            mxl.dwSource   =   i; //枚举每一个设备,当Source的ID等于当前的迭代记数
            MMRESULT mr   =   mixerGetLineInfo((HMIXEROBJ)hmixer, &mxl, MIXER_OBJECTF_HMIXER | MIXER_GETLINEINFOF_SOURCE); //根据SourceID获得连接的信息
            if(mr != 0) //判断函数执行结果
            {   
        break;   
            }   

            if(mxl.dwComponentType == MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE) //如果当前设备类型是指定类型是麦克风,则跳出循环。
            {
                uLineIndex = i;
                break;   
            }
        }
        mixerClose(hmixer);uLineIndex 的值就是麦克风控制的编号
      

  2.   

    那是因为我自己找到方法,一切都得靠自己!问只是个辅助,不过好像不能获得Realtek HD。谁用时在自己找去吧