以文本方式查看主题 - 计算机科学论坛 (http://bbs.xml.org.cn/index.asp) -- 『 C/C++编程思想 』 (http://bbs.xml.org.cn/list.asp?boardid=61) ---- vista audio 录音的几个问题 (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=49623) |
-- 作者:卷积内核 -- 发布时间:7/9/2007 4:48:00 PM -- vista audio 录音的几个问题 vista audio 的编程模式不同于以往.这几天在折腾 vista 下的录音模块.有几点疑问: 1.在以往的模式中,我分别用 vfw 和 directx 处理过.思路都是差不多.以directx 为例: a. 首先,调用: b. 得到声卡之后, 再通过 IID_IAMAudioInputMixer 结果, 得到它的输入单元,其结果的friendlyname, 有可能是: a. CLSID_AudioInputDeviceCategory, 获取的结果,却是声卡的输入单元(不是声卡本身).例如:Stereo Mix, Microphone等.获取的 friendlyname, 是: b. 调用 IID_IAMAudioInputMixer 接口,获取的输入单元的friendly, 都只有一个: 3. 由于上述代码,虽然在 vista 下可以工作,但是,无法设置音量.于是,我用 vista sdk 重写了这部分的代码. 4. 我用 IMMDeviceEnumerator,IMMDeviceCollection 枚举捕捉设备,获取到 IMMDevice 接口.通过 IMMDevice 接口的 IPropertyStore, 查询到捕捉设备的 friendlyname, 仍然是如下格式: 通过 IAudioEndpointVolume, 可以获取或控制输入音量的大小. 值得庆幸的是,虽然这种结构不同于以往,但经过调试,程序已经能够正常运行了. vista 下的问题: 1. 如何判断一个输入单元是否为单声道或双声道? 2. 有没有可能,象以前的模式那样,查询出声卡的名称,然后查出声卡的输入单元名称? |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
31.250ms |