我正在编写自己的 API 来执行 SndVol 系统实用程序的一些功能。我希望这个 API 的一部分能够设置给定音频会话的音量级别。
SndVol 在“设备”面板上显示一个滑块,用户可以使用它来更改音频设备的主音量级别,以及一个用于更改会话音量级别的每个音频会话(在“应用程序”面板上)的滑块:
如果我拖动其中一个音频会话的滑块手柄,则 SndVol 能够更改音频会话的音量。它是如何做到的?
我认为使用 Windows Vista 的Core Audio API是可能的,但我遇到了一个问题,虽然我能够使用 迭代设备的音频会话IAudioSessionEnumerator
,但IAudioSessionEnumerator
只能让我访问IAudioSessionControl
对象,但我需要IAudioClient
对象来获取ISimpleAudioVolume
对象我可以用来设置音频会话音量。是否可以获取与IAudioClient
对象关联的IAudioSessionControl
对象?