现在的位置: 首页 > 综合 > 正文

(2nd week)Mixer API使用总结

2012年03月27日 ⁄ 综合 ⁄ 共 898字 ⁄ 字号 评论关闭

    Hardware Audio Mixer Functions,是微软提供的一套API函数。

    打开控制面板中的控制项——声音,可以对系统的输入、输出声音做一些设置。例如audio ouput中,可以查看主音量的左右声道、音量、是否静音,并且进行设置。还能分别对CD音量、波形等进行设置。而mixer API就是让我们自己通过编程实现这些功能,并且,当控制面板中修改了这些值时(当然,也可以是其他调用了mixer API的程序),我们还可以收到相关的通知消息。

 

    学习mixer API最好的资料是MSDN。这是我在网上下载的一份中文的mixerAPI的资料,下载链接如下

http://download.csdn.net/detail/q191201771/4506117

但我认为它说的内容不一定完全正确或者说不一定最适合理解,所以,还得靠自己多动手才能真正掌握mixerAPI。

   

    我使用mixerAPI的目的,是为了在程序中禁用所有除microphone外的输入源。

   

    起初我使用的方法是,拿到目标线路MIXERLINE_COMPONENTTYPE_DST_WAVEIN,然后去获取它的控件MIXERCONTROL_CONTROLTYPE_MIXER,在该控件中,只开启microphone,其他全部禁用。

    在不同环境中测试发现,有些机器的目标线路MIXERLINE_COMPONENTTYPE_DST_WAVEIN中,没有控件MIXERCONTROL_CONTROLTYPE_MIXER。说明不同环境时(可能是声卡类型,也可能是操作系统版本造成的,由于测试机器数量及开发时间的限制,未能完全理清这个问题),所能拿到的线路、控件是不同的

    在不同环境中,控制面板中的声音所能设置的项也不完全相同,似乎也证明了这点。

 

    后来的做法是,获取目标线路MIXERLINE_COMPONENTTYPE_DST_WAVEIN的所有源线路,通过源线路中的mute控件,把除mic以外的所有源线路都静音。此方法在本地的几台测试机器中,都成功了。

 

转载请注明出处:www.cnblogs.com/chef

抱歉!评论已关闭.