通过调用windows api来控制音量和播放音频,以下是详细的指导:
控制音量
以下是通过调用Windows API来逐步增加音量的示例代码:
/**@breif 修改Windows系统声音*/ #include#include #include #include bool SetVolum(int volume) { HRESULT hr; IMMDeviceEnumerator pDeviceEnumerator = 0; IMMDevice pDevice = 0; IAudioEndpointVolume pAudioEndpointVolume = 0; IAudioClient pAudioClient = 0;
try { hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_ALL, __uuidof(IMMDeviceEnumerator), (void**)&pDeviceEnumerator); if (FAILED(hr)) throw "CoCreateInstance"; hr = pDeviceEnumerator-youjiankuohaophpcnGetDefaultAudioEndpoint(eRender, eMultimedia, &pDevice); if (FAILED(hr)) throw "GetDefaultAudioEndpoint"; hr = pDevice-youjiankuohaophpcnActivate(__uuidof(IAudioEndpointVolume), CLSCTX_ALL, NULL, (void**)&pAudioEndpointVolume); if (FAILED(hr)) throw "pDevice-youjiankuohaophpcnActive"; hr = pDevice-youjiankuohaophpcnActivate(__uuidof(IAudioClient), CLSCTX_ALL, NULL, (void**)&pAudioClient); if (FAILED(hr)) throw "pDevice-youjiankuohaophpcnActive"; float fVolume; fVolume = volume / 100.0f; hr = pAudioEndpointVolume-youjiankuohaophpcnSetMasterVolumeLevelScalar(fVolume, &GUID_NULL); if (FAILED(hr)) throw "SetMasterVolumeLevelScalar"; pAudioClient-youjiankuohaophpcnRelease(); pAudioEndpointVolume-youjiankuohaophpcnRelease(); pDevice-youjiankuohaophpcnRelease(); pDeviceEnumerator-youjiankuohaophpcnRelease(); return true; } catch (...) { if (pAudioClient) pAudioClient-youjiankuohaophpcnRelease(); if (pAudioEndpointVolume) pAudioEndpointVolume-youjiankuohaophpcnRelease(); if (pDevice) pDevice-youjiankuohaophpcnRelease(); if (pDeviceEnumerator) pDeviceEnumerator-youjiankuohaophpcnRelease(); throw; } return false;}
int main(int argc, char *argv) { CoInitialize(0); int vol; for (vol = 0; vol
实际效果如下:
电脑音量从0到10逐步增加,每次增加10%,每次增加之间的延时设置为1秒。
立即学习“C++免费学习笔记(深入)”;
播放音频
以下是通过Windows API来播放音频的示例代码:
/C++播放音频(VS2017)*/include
include
include
// 用于播放音频 pragma comment(lib, "winmm.lib") // 导入声音头文件库
int main() { std::cout << "开始播放hello.mp3...\n"; PlaySound(TEXT("hello.mp3"), NULL, SND_FILENAME | SND_ASYNC); std::cout << "按任意键结束...\n"; std::cin.get(); return 0; }
实际效果如下:
电脑开始播放hello.mp3的声音。












