如何在windowsc++中关闭麦克风
How turn off microphone in windows c++
本文关键字:麦克风 windowsc++ 更新时间:2023-10-16
我想让代码关闭我的麦克风(它使白噪声),我怎么能做到这一点vc++(不是。net)?
你可以使用下面的代码段,它应该为你工作…
void setVolume(DWORD volume) {
HMIXER mixer;
if (mixerOpen(&mixer, 0, 0, 0, 0) != MMSYSERR_NOERROR) {
MessageBoxW(NULL, L"Error: mixerOpen()", NULL, MB_ICONHAND);
return;
}
// Get the line info
MIXERCAPS mixcaps;
MIXERLINE mixerLine;
mixerGetDevCaps(0, &mixcaps, sizeof(MIXERCAPS));
mixerLine.cbStruct = sizeof(MIXERLINE);
mixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_WAVEIN;
mixerLine.dwSource = 0;
mixerLine.dwDestination = 0;
if (mixerGetLineInfo(reinterpret_cast<HMIXEROBJ>(mixer), &mixerLine, MIXER_GETLINEINFOF_SOURCE)
!= MMSYSERR_NOERROR) {
MessageBoxW(NULL, L"Error: mixerGetLineInfo()", NULL, MB_ICONHAND);
return;
}
// Get control for mixerline
MIXERCONTROL mixerCtrl;
MIXERLINECONTROLS mixerLineCtrl;
mixerLineCtrl.cbStruct = sizeof(MIXERLINECONTROLS);
mixerLineCtrl.dwLineID = mixerLine.dwLineID;
mixerLineCtrl.dwControlType = MIXERCONTROL_CONTROLTYPE_VOLUME;
mixerLineCtrl.cControls = 1;
mixerLineCtrl.pamxctrl = &mixerCtrl;
mixerLineCtrl.cbmxctrl = sizeof(MIXERCONTROL);
mixerLineCtrl.cControls = 5;
if (mixerGetLineControls(reinterpret_cast<HMIXEROBJ>(mixer), &mixerLineCtrl, MIXER_GETLINECONTROLSF_ONEBYTYPE)
!= MMSYSERR_NOERROR) {
MessageBoxW(NULL, L"Error: mixerGetLineControls()", NULL, MB_ICONHAND);
return;
}
// Volume..
MIXERCONTROLDETAILS mixerCtrlDetails;
MIXERCONTROLDETAILS_UNSIGNED mixerCtrlDetailsUnsigned;
mixerCtrlDetailsUnsigned.dwValue = volume;
mixerCtrlDetails.dwControlID = mixerCtrl.dwControlID;
mixerCtrlDetails.cbStruct = sizeof(MIXERCONTROLDETAILS);
mixerCtrlDetails.cMultipleItems = 0;
mixerCtrlDetails.paDetails = &mixerCtrlDetailsUnsigned;
mixerCtrlDetails.cbDetails = sizeof(MIXERCONTROLDETAILS_UNSIGNED);
mixerCtrlDetails.cChannels = 1;
if (mixerSetControlDetails(reinterpret_cast<HMIXEROBJ>(mixer), &mixerCtrlDetails, MIXER_OBJECTF_HMIXER | MIXER_GETCONTROLDETAILSF_VALUE)
!= MMSYSERR_NOERROR) {
MessageBoxW(NULL, L"Error: mixerSetControlDetails()", NULL, MB_ICONHAND);
return;
}
mixerClose(mixer);
}
在vista和7有API的变化看看http://blogs.msdn.com/b/larryosterman/archive/2007/03/06/how-do-i-change-the-master-volume-in-windows-vista.aspx
相关文章:
- 适用于 macOS 的 Xcode 应用程序。这就是我设置从USB麦克风输入获取音频的方式。一年前工作,现在没有了。为什么
- 如何从 qml webgl 获取麦克风到 c++?
- 如何使用口袋狮身人面像通过代码中的麦克风进行语音识别
- 如何捕获麦克风缓冲区原始数据
- 如何使用Android的双簧管/ AAudio从多个麦克风读取数据
- 如何以编程方式启用侧音/麦克风直通
- 从麦克风到整数数组 (C++/Qt) 的示例音频
- QIODevice::为麦克风写入数据
- 如何使用C++控制麦克风增强/ AGC
- QNX麦克风采样和扬声器播放
- Debian - 脉冲音频 - 在 C++ 中设置麦克风输入音量
- 如何录制麦克风直到没有声音
- 无法在QT中记录从麦克风到Qfile的音频
- C 麦克风输入
- C++麦克风输入作为随机种子
- 正在检索使用相机麦克风捕获的音频
- 在g++5上编译windowsc++项目的可视化问题
- Windows中的麦克风列表(输入设备列表)
- MediaElement捕获麦克风并修改数据
- 如何在windowsc++中关闭麦克风