问题描述
|
我正在编写自己的API,以执行SndVol系统实用程序的某些功能。我希望此API的一部分能够设置给定音频会话的音量。
SndVol在\“ Device \”面板上显示一个滑块,用户可以使用它来更改音频设备的主音量级别,并为每个音频会话(在\“ Applications \”面板上)上的滑块更改音量。会话级别:
如果我拖动一个音频会话的滑块手柄,则SndVol能够更改音频会话的音量。它是如何做到的?
我以为可以使用Windows Vista的Core Audio API,但是遇到了一个问题,尽管我可以使用ѭ0来迭代设备的音频会话,但是ѭ0只能让我访问
IAudioSessionControl
对象,但是我需要使用“ 3”对象获得一个“ 4”对象,我可以使用该对象来设置音频会话音量。是否有可能获得与IAudioSessionControl
对象关联的IAudioClient
对象?
解决方法
如果在IAudioSessionControl接口上调用QueryInterface,则通常可以访问ISimpleAudioVolume。
,拉里·奥斯特曼(Larry Osterman)在Microsoft工作,从事新音频API的工作,他撰写了一系列有关新Vista / Win7音频功能的博客文章。这里有一些链接可能会有所帮助:
快速浏览新的Windows 7多媒体/音频SDK示例-该示例显示了每个应用程序的音量控制
Vista中的音量控制-描述每个应用程序的音量控制以及Vista / Win7中添加的其他新音频功能
页面右侧有一个索引;您可以查看带有音频标签的项目,以获得其他可能有所帮助的文章。