设为首页 加入收藏

TOP

调节系统音量VC++(适合win和xp系统) 打开静音 增减和减小系统音量 (三)
2014-11-23 19:05:49 】 浏览:656
Tags:调节 系统 音量 适合 win 打开 静音 增减 减小
OLDETAILS_UNSIGNED mxcdVolume;
MIXERCONTROLDETAILS mxcd;
mxcd.cbStruct = sizeof(MIXERCONTROLDETAILS);
mxcd.dwControlID = mxc.dwControlID;
mxcd.cChannels = 1;
mxcd.cMultipleItems = 0;
mxcd.cbDetails = sizeof(MIXERCONTROLDETAILS_UNSIGNED);
mxcd.paDetails = &mxcdVolume;

mixerGetControlDetails((HMIXEROBJ)m_hMixer,&mxcd,
MIXER_OBJECTF_HMIXER|MIXER_GETCONTROLDETAILSF_VALUE);
HANDLE hSpeakGroup=SsnBeginSpeakGroup();
mxcdVolume.dwValue = mxcdVolume.dwValue - 655;
if (mxcdVolume.dwValue > 1)
{
INT nVolume = INT( mxcdVolume.dwValue/655.35);
CString ToSpeak = _T("系统音量减小到");
CString Volume;
Volume.Format(_T("%d"), nVolume);
ToSpeak = ToSpeak + Volume;
SSN_SPEAK_OPTION SpeakOption;
if (hSpeakGroup!=INVALID_HANDLE_VALUE)
{
SsnAddSpeakString(hSpeakGroup,ToSpeak,&SpeakOption);
}
mixerSetControlDetails((HMIXEROBJ)m_hMixer,&mxcd,
MIXER_OBJECTF_HMIXER|MIXER_SETCONTROLDETAILSF_VALUE);
}
else
{
INT nVolume = 0;
CString ToSpeak = _T("系统音量减小到");
CString Volume;
Volume.Format(_T("%d"), nVolume);
ToSpeak = ToSpeak + Volume;
SSN_SPEAK_OPTION SpeakOption;
if (hSpeakGroup!=INVALID_HANDLE_VALUE)
{
SsnAddSpeakString(hSpeakGroup,ToSpeak,&SpeakOption);
}
mxcdVolume.dwValue = 1;
mixerSetControlDetails((HMIXEROBJ)m_hMixer,&mxcd,
MIXER_OBJECTF_HMIXER|MIXER_SETCONTROLDETAILSF_VALUE);
}
SsnEndSpeakGroup(hSpeakGroup);
return TRUE;
}

//Windows 音量调节
IMMDevice *defaultDevice = NULL;

hr = deviceEnumerator->GetDefaultAudioEndpoint(eRender, eConsole, &defaultDevice);
if (FAILED(hr))
{
return FALSE;
}

deviceEnumerator->Release();
deviceEnumerator = NULL;

IAudioEndpointVolume *endpointVolume;

hr = defaultDevice->Activate(__uuidof(IAudioEndpointVolume), CLSCTX_INPROC_SERVER, NULL, reinterpret_cast(&endpointVolume));
if (FAILED(hr))
{
return FALSE;
}

hr = endpointVolume->VolumeStepDown(NULL);
float currentVolume;
hr = endpointVolume->GetMasterVolumeLevelScalar(¤tVolume);
INT nVolume = INT(currentVolume * 100);
HANDLE hSpeakGroup=SsnBeginSpeakGroup();
CString ToSpeak = _T("系统音量减小到");
CString Volume;
Volume.Format(_T("%d"), nVolume);
ToSpeak = ToSpeak + Volume;
SSN_SPEAK_OPTION SpeakOption;
if (hSpeakGroup!=INVALID_HANDLE_VALUE)
{
SsnAddSpeakString(hSpeakGroup,ToSpeak,&SpeakOption);
}
if (FAILED(hr))
{
return FALSE;
}
if (hr == S_FALSE)
{
return FALSE;
}
SsnEndSpeakGroup(hSpeakGroup);
return TRUE;
}


首页 上一页 1 2 3 4 下一页 尾页 3/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇VC维的图像解释 下一篇wmi 获取当前登录用户名

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目