资源简介
网上找的一些代码,用C++实现windows下获取音频信息(音量,是否静音).
代码片段和文件信息
// Mixer.cpp: implementation of the CMixer class.
//
//#include “stdwx.h“
#include “Mixer.h“
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMixer::CMixer()
{
m_VolRange = 100;
}
CMixer::~CMixer()
{
}
CMixer::CMixer(const int VolRange)
{
m_VolRange = VolRange;
}
//----------------------------设定音量---------------------------------------
bool CMixer::GetVolumeControl(HMIXER hmixer long componentTypelong ctrlTypeMIXERCONTROL* mxc)
{
MIXERLINECONTROLS mxlc;
MIXERLINE mxl;
bool exist = false;
mxl.cbStruct = sizeof(mxl);
mxl.dwComponentType = componentType;
if (componentType == MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE)
{//获取录音麦克风设备
mxl.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_WAVEIN;
// 得到录制总线中的连接数
mixerGetLineInfo( (HMIXEROBJ)hmixer &mxl
MIXER_objectF_HMIXER | MIXER_GETLINEINFOF_COMPONENTTYPE );
// 将连接数保存
DWORD dwConnections = mxl.cConnections;
// 准备获取麦克风设备的ID
DWORD dwLineID = 0;
for ( DWORD i = 0; i < dwConnections; i++ )
{
// 枚举每一个设备,当Source的ID等于当前的迭代记数
mxl.dwSource = i;
// 根据SourceID获得连接的信息
MMRESULT mr = mixerGetLineInfo( (HMIXEROBJ)hmixer &mxl
MIXER_objectF_HMIXER | MIXER_GETLINEINFOF_SOURCE );
// 判断函数执行错误
if ( mr != 0 )
{
break;
}
// 如果当前设备类型是麦克风,则跳出循环。
if ( mxl.dwComponentType ==
MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE )
{
exist = true;
break;
}
}
}else if(!mixerGetLineInfo((HMIXEROBJ)hmixer &mxl MIXER_GETLINEINFOF_COMPONENTTYPE))
{
exist = true;
}
if (exist)
{
mxlc.cbStruct = sizeof(mxlc);
mxlc.dwLineID = mxl.dwLineID;
mxlc.dwControlType = ctrlType;
mxlc.cControls = 1;
mxlc.cbmxctrl = sizeof(MIXERCONTROL);
mxlc.pamxctrl = mxc;
if(mixerGetLineControls((HMIXEROBJ)hmixer&mxlcMIXER_GETLINECONTROLSF_ONEBYTYPE))
return 0;
else
return 1;
}
return 0;
}
//---------------------------------------------------------------------------
long CMixer::GetMuteValue(HMIXER hmixer MIXERCONTROL *mxc)
{
MIXERCONTROLDETAILS mxcd;
MIXERCONTROLDETAILS_BOOLEAN mxcdMute;
mxcd.hwndOwner = 0;
mxcd.cbStruct = sizeof(mxcd);
mxcd.dwControlID = mxc->dwControlID;
mxcd.cbDetails = sizeof(mxcdMute);
mxcd.paDetails = &mxcdMute;
mxcd.cChannels = 1;
mxcd.cMultipleItems = 0;
if (mixerGetControlDetails((HMIXEROBJ)hmixer &mxcdMIXER_objectF_HMIXER|MIXER_GETCONTROLDETAILSF_VALUE))
return -1;
return mxcdMute.fValue;
}
//---------------------------------------------------------------------------
unsigned CMixer::GetVolumeValue(HMIXER hmixer MIXERCONTROL *mxc)
{
MIXERCONTROLDETAILS mxcd;
MIXERCONTROLDETAILS_UNSIGNED vol;
vol.dwValue=0;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9291 2012-03-15 22:27 windows下获取音频信息(C++实现)\version1\Mixer.cpp
文件 1373 2012-03-15 22:26 windows下获取音频信息(C++实现)\version1\Mixer.h
文件 4266 2012-03-15 22:49 windows下获取音频信息(C++实现)\version2\Mixer_v2.cpp
目录 0 2012-03-15 23:24 windows下获取音频信息(C++实现)\version1
目录 0 2012-03-15 23:24 windows下获取音频信息(C++实现)\version2
目录 0 2012-03-15 23:25 windows下获取音频信息(C++实现)
----------- --------- ---------- ----- ----
14930 6
- 上一篇:3D赛车小游戏(DX学习)
- 下一篇:生产者消费者问题c++实现
相关资源
- 房屋销售管理系统C++
- 条件平差的 C++代码
- MFC下好用的高速绘图控件-(Hight-Spe
- usb_hid_vc++6.0读写设备源码
- 换肤窗口VC++程序与源码
- 亦思C++VC调用
- 数据结构算法与应用--C++语言描述(代
- 非常好用的c++ ftp库源码vs2013工程
- C++实现的非常好的一个矩阵类
- VC++6.0写的网络爬虫程序
- 数据结构 银行排队系统
- c++11的中文文档
- C++调用百度地图案例VC++
- MFC 窗口缩放
- AES加密源码使用C++实现
- C++MFC画圆源代码
- 纯C++打造的Splash Screen类打造专业的启
- MUSIC算法c++实现
- C/C++语言图像处理:各种滤波
- 课程设计课程表.zip
- VC++wav文件的读写
- C++ 垃圾代码生成器
- 数据结构算法与应用--C++语言描述(代
- Modbus C++
- 生产者消费者问题c++实现
- VC++实现动态捆绑EXE文件
- 人工蜂群算法源代码c++,matlab
- c++ 本地代理服务器源码
- C++实现朴素贝叶斯分类器(加强版)
- linux操作系统下C++封装的基础库
评论
共有 条评论