获取当前系统音频设备数量和属性

下面所有操作在新建console或者MFC程序时均要添加以下头文件和库:

#include <mmsystem.h>

#include <dsound.h>

 库添加:菜单Setting->Link->Object/Library Modules

winmm.lib

<1> : 获取音频设备数量:

a>.获取输入设备数量:

UINT waveInGetNumDevs(VOID);

b>.获取输出设备数量:

UINT waveOutGetNumDevs(VOID);

 返回值均为整形.

<2> : 设备属性:

a>.输入设备属性:

MMRESULT waveInGetDevCaps(
  UINT
uDeviceID,    
  LPWAVEINCAPS pwic
  UINT cbwic         
);

b>.输出设备属性:

MMRESULT waveOutGetDevCaps(
  UINT
uDeviceID,     
  LPWAVEOUTCAPS pwoc
  UINT cbwoc          
);
<3> .新建一个Console工程,给出demo :

#include <STDIO.H>
#include <STDLIB.H>
#include<WINDOWS.H>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
int main()
{
 int n=waveInGetNumDevs();
 printf("音频输入设备:%d\n",n);


 int i;
 for(i=0;i<n;i++)
 {
  WAVEINCAPS m_caps;
  waveInGetDevCaps(i,&m_caps,sizeof(m_caps));
  printf("id:%d Mid:%d Pid:%d Version:%d %s\n",
   i,m_caps.wMid,m_caps.wPid,m_caps.vDriverVersion,
   m_caps.szPname);
 }

 n=waveOutGetNumDevs();
 printf("音频输出设备:%d\n",n);
 for(i=0;i<n;i++)
 {
  WAVEOUTCAPS m_caps;
  waveOutGetDevCaps(i,&m_caps,sizeof(m_caps));
  printf("id:%d Mid:%d Pid:%d Version:%d %s\n",
   i,m_caps.wMid,m_caps.wPid,m_caps.vDriverVersion,
   m_caps.szPname);
 }
 return 0;
}

<4> : 运行程序即可以看到结果.

 

 <5> : 增加一函数:

MMRESULT waveOutGetID(
  HWAVEOUT
hwo,    //设备句柄  
  LPUINT puDeviceID  //返回该设备的DeviceID number号
);

 

 

 

 

 

 

 

posted @ 2013-05-28 19:28  MMLoveMeMM  阅读(912)  评论(0编辑  收藏  举报