Core Audio API关于音量控制方面的函数主要有:
·ISimpleAudioVolume
·IChannelAudioVolume
·IAudioStreamVolume
·IAdudioEndpointVolume
其中,前三种适用于共享模式,第四种可用于独占模式,也可用于共享模式。前面三种API的用法很相似,在此只介绍IChannelAudioVolume的用法,下面直接上代码:
hr = CoCreateInstance(
CLSID_MMDeviceEnumerator, NULL,
CLSCTX_ALL, IID_IMMDeviceEnumerator,
(void**)&pEnumerator);
EXIT_ON_ERROR(hr)
hr = pEnumerator->GetDefaultAudioEndpoint(
eCapture, eConsole, &pDevice);
EXIT_ON_ERROR(hr);
hr = pDevice->Activate(
IID_IAudioClient, CLSCTX_ALL,
NULL, (void**)&pAudioClient);
EXIT_ON_ERROR(hr)
hr = pAudioClient->GetMixFormat(&pwfx);
EXIT_ON_ERROR(hr)
hr = pAudioClient->Initialize(
AUDCLNT_SHAREMO