获取当前系统音频设备数量和属性
下面所有操作在新建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号
);