关于监听微信或QQ的语音来电和录音的问题

fvcenet 2022-06-21 13:12:07

我这两天做了一个winform程序,主要是解决拉跨的windows录音问题,大家都知道windows录音机很难用,只能录mic的声音,如果要同时录声卡的声音,需要各种设置,我做的这个录音程序可以同时录两组声音:mic和声卡,停止录音后自动合并两条声轨,形成完整的录音文件,用于卡拉OK、通话录音是极好的。

用了Naudio和FFmpeg,整体实现有不少坑,但问题都不大。

贴一段核心代码,供后来的朋友避坑。

第一个坑:Naudio可以录mic和声卡,但不能同时录音,于是我就new了两个对象,一个录mic一个录声卡,结果也会得到两个音轨文件。

WaveIn() 这个是录Mic的,WasapiLoopbackCapture()这个是录声卡的。

 

第二个坑:Naudio合并两个音轨文件时要求这两个文件码率必须一致,否则无法合并;

第三个坑:回头重新设置录制音轨的码率,这时候一个巨坑来了,Mic的音轨可以设置码率,例如——

waveIn.WaveFormat = new WaveFormat(25600, 16, 1);            //设置采样频率 

但是到了录制声卡的时候 WasapiLoopbackCapture(),却不支持设置码率,官方的说法是:录制声卡声音走的是windows默认的设置,这个设置是只读的,不能更改。 这时候你虽然录了两个音轨,但一个文件很小,另一个很大,也无法合并。

于是只能祭出FFmpeg这个杀器,合并音轨之前,先用FF把这两个音轨码率调整一致,就叫对齐吧。 然后合并就没问题了。

 

成品软件实现的界面:

软件启动界面

 

软件录音界面

 

录音结束合并音轨

 

 录音成品文件

 

 发布后的软件包

 

 

软件测试了几天也没啥问题了,我想通过什么方法来监听 微信或QQ的来电,一旦来电响铃,软件自动弹出 “是否录音?”的提示,我是一点思路都没有,哪位大神给指个方向呢?

 

 

...全文
7859 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-IT工具 发布问题, 以便更快地解决您的疑问

7,656

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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