C#开发一款「微信录音机」 解决了一个困扰半个多月的问题

个把月之前我做了一款PC端录音机软件,主要是因为windows自带的录音机很拉跨,无法同时录mic和声卡(也就是无法同时录话筒声音和对方说话的声音,虽然可以通过混音器解决,但一般人很难设置) 。
由于上述问题,所以就无法轻松实现微信或QQ来电通话录音 。我开发的这个录音机就是解决这个问题的,用了几天没啥问题,但是另一个问题又浮出水面——
来电铃声响起,才手忙脚乱去找录音软件,启动、开始录音,有时候慌乱之中还忘了录音 。所以:使用体验非常不好……
我希望:微信来电响铃的时候,自动把录音机也弹出来,实现一键接听、一键录音,这样的话使用体验会大大增强 。
这么多年我一直做web开发,对桌面开发经验还是不足,对上述问题一直没有思路 。直到今天在头条遇到一个四川的网友,给我留言,指了一个方向,才算是真正地把问题解决了,效果很好,我把解决方案写成文章,希望帮助到后来的朋友——
 
一言蔽之:通过查询windows窗体句柄来确认是否来电 。
具体做法:
【C#开发一款「微信录音机」 解决了一个困扰半个多月的问题】1、下载微软官方出品的Spy++工具,这个工具可以实时获取windows当前运行的所有程序的句柄、窗体名、类名、进程等关键信息,如下图:

C#开发一款「微信录音机」 解决了一个困扰半个多月的问题

文章插图
 
2、启动这个工具后,然后拨通微信通话,等来电铃声响起“接听对话框”出现的时候,Spy软件就会出现这个对话框的窗体信息 。
 
3、在录音机程序里创建一个timer,每秒钟查询一下是否有来电对话框,【有】则触发显示录音机窗体,【无】则在通知栏保持静默 。
C#开发一款「微信录音机」 解决了一个困扰半个多月的问题

文章插图
代码片段
 
C#开发一款「微信录音机」 解决了一个困扰半个多月的问题

文章插图
来电时 录音机弹出的实际效果
 
程序即方法,方法知道了实现起来就十几分钟的事儿,希望这篇文章的解题思路能帮到后面的朋友 。
 
扩展阅读:
关于录音机软件本身实现的文章,核心知识点:同时录Mic声音和声卡声音,然后通过ffmpeg进行音轨合并 。




    推荐阅读