除了DirectShow  DirectSound  DDK 还有什么好方法?
比如说要检测一个USB设备里面的声音设备?

解决方案 »

  1.   

    BOOL CALLBACK acmDriverEnumCallback(
    HACMDRIVERID hadid,  
    DWORD dwInstance,    
    DWORD fdwSupport)
    {
    DWORD dwSize = 0;
    CListBox* pList = (CListBox*)dwInstance; ACMDRIVERDETAILS acmdd;
    acmdd.cbStruct = sizeof(acmdd); MMRESULT mmr = acmDriverDetails(hadid, &acmdd, 0); if (mmr == 0){
    int index = pList->AddString(acmdd.szLongName);
    pList->SetItemData(index ,(DWORD) hadid);
    }
    return TRUE;
    }BOOL CACMInfoDlg::OnInitDialog() 
    {
    CDialog::OnInitDialog();

    // TODO: Add extra initialization here
    acmDriverEnum(acmDriverEnumCallback, (DWORD)GetDlgItem(IDC_LST_ACM), 0);

    return TRUE;  // return TRUE unless you set the focus to a control
                  // EXCEPTION: OCX Property Pages should return FALSE
    }
      

  2.   

    首先谢谢 krh2001(边城浪子) 的大力帮助,上述程序运行后确实列举出了所有的音频CODECs,但是,我在电脑上插上USB设备后,此程序并未检测到USB设备里面的CODECs,也就是说并没有检测到新增加的声音设备.怎样才能检测到USB设备里面的声音设备呢?