音频捕捉的问题!

w_anthony 2007-07-17 03:01:11
用DirectSound捕获音频是不是没有办法设定设备的输入端?
就是不想让它使用系统设置,而总是去捕捉麦克风的设备。

如果DirectSound没有办法的话,DirectShow也可以。我现在用DirectShow已经可以使用麦克风了,而且也接了一个ISampleGrabberCB,在8000HZ、16位、单声道下,每隔500ms会收到88200个字节的数据,但是用CWaveFile写到文件里面,播放出来的东西根本就是乱七八糟的。DirectShow捕获音频,可以用ISampleGrabberCB来回调吗?如果可以的话,收到的数据到底是什么?另外虽然DX例子里面的那个WavDest的Filter可以写到文件里面,但是要多个注册的步骤,感觉不好。

请大侠给个直接指定捕获麦克风的音频捕捉的思路阿……

...全文
439 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
w_anthony 2007-07-25
  • 打赏
  • 举报
回复
差不多要完工了,还有两个小问题,不过是视频相关的,先结帖吧!
Afile 2007-07-24
  • 打赏
  • 举报
回复
不妨考虑预设定的办法吧,没有哪个Audio Capture Source会知道自己连了什么、叫什么的,你可以考虑在第一次使用的时候枚举输入pin后列给用户选一次,以后就记住用它就是了。而且机器上可用的Audio Capture Source也许也不仅仅一个可用。大部分类似的应用软件不都要预设定选用设备的吗?
ken1 2007-07-23
  • 打赏
  • 举报
回复
汗,太菜,只有恭喜的份
w_anthony 2007-07-23
  • 打赏
  • 举报
回复
那再请教一下LS,捕获设备的输入pin选择的时候,怎么知道哪个pin是麦克风?
中文的声卡驱动的麦克风的FriendlyName是“麦克风”,英文驱动的名字是“MicroPhone”,如果再出来一个别的语言的,可能就对应不上了,可以根据什么来确保选择到的输入pin是麦克风呢?
Afile 2007-07-23
  • 打赏
  • 举报
回复
噪音的问题是正反馈的表现,如果没有耳机,就不应该输出声音了。

编码器是得用枚举的,我也没有好办法,我也只试过尽可能选一个大部分系统都可能有的编码器了。

先恭喜楼主吧。
w_anthony 2007-07-21
  • 打赏
  • 举报
回复
哎,别急着恭喜阿,我还有那两个问题不知道怎么搞呢……
zhujiannihao123 2007-07-21
  • 打赏
  • 举报
回复
我看完了.恭喜,
w_anthony 2007-07-20
  • 打赏
  • 举报
回复
PIN_CATEGORY_CAPTURE和PIN_CATEGORY_PREVIEW什么区别已经知道了,前者有时间戳,后者没有
现在的问题比较急:
音频输出接编码器的时候,发现很多编码器的CLSID是一样的,这样就只能通过枚举得到想要的Filter了,但是如果根据枚举到的Moniker的FriendlyName判断,可能会出现语言不同,对应不上的问题,应该要怎么才能确定这个Moniker是自己需要的?
还有上面的“麦克风”Pin的判断也是同一个问题。
ArchMage_dino 2007-07-19
  • 打赏
  • 举报
回复
除了恭喜,我也不知道该说些什么了~~~
w_anthony 2007-07-18
  • 打赏
  • 举报
回复
貌似是连续三帖的最后一帖了。

已经知道不接NullRender为什么会有噪音了。不接NullRender,它会自动接到默认设备上,也就是音频输出了。而声卡设备原先会有一点小噪音的,只是人感觉不到罢了,再加上捕捉的是Stereo Mix,那么就会捕捉到这一点小噪音,这一点不能察觉的小噪音,又会输出出来与原先的噪音叠加,时间越长,叠加的效果就越明显,所以噪音就会越来越大了。

至于LS的几个问题还是不清楚,现在还是希望有经验的前辈,来指点一下……
w_anthony 2007-07-18
  • 打赏
  • 举报
回复
终于成功了,激动啊!
原来DS例子里面的AudioCap的输入pin选择是错位的,选了Stereo Mix,实际上选的却是辅助,而真正选到Stereo Mix上的时候,也是一堆噪音。
瞎搞了很久,发现接一个NullRenderer就没噪音了,初学没经验所致-_-b

现在还有些概念不是很清楚,比如PIN_CATEGORY_CAPTURE和PIN_CATEGORY_PREVIEW有什么区别之类的,Render哪个pin比较好?
另外又没有什么好的压缩编码推荐的?
这100分我还想花出去的,不要总是我一个人自言自语么!
w_anthony 2007-07-17
  • 打赏
  • 举报
回复
哎呀,犯了低级错误!
设置输出格式,应该是对PINDIR_OUTPUT进行设置,我copy过来的时候忘了改,结果对PINDIR_INPUT进行设置了,怪不得采样到的数据这么大-_-b
现在平均50ms得到800字节的数据,写入wav也是正常的,输入源设为Stereo Mix了,不然整天对着话筒“喂喂”,也不好意思。只是不知道为什么噪音很大,预览的时候噪音就很大,而DS里面的AudioCap就没有噪音,希望哪位大侠指点一下。
我再继续找找原因。
还有我这个是要网络传输的,各位认为用什么压缩比较简单,效果也比较好呢?请提提意见吧……

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧