個把月之前我做了一款PC端錄音機軟件,主要是因為windows自帶的錄音機很拉跨,無法同時錄mic和聲卡(也就是無法同時錄話筒聲音和對方說話的聲音,雖然可以通過混音器解決,但一般人很難設置)。
由于上述問題,所以就無法輕松實現(xiàn)微信或QQ來電通話錄音。我開發(fā)的這個錄音機就是解決這個問題的,用了幾天沒啥問題,但是另一個問題又浮出水面——
來電鈴聲響起,才手忙腳亂去找錄音軟件,啟動、開始錄音,有時候慌亂之中還忘了錄音。所以:使用體驗非常不好……
我希望:微信來電響鈴的時候,自動把錄音機也彈出來,實現(xiàn)一鍵接聽、一鍵錄音,這樣的話使用體驗會大大增強。
這么多年我一直做web開發(fā),對桌面開發(fā)經(jīng)驗還是不足,對上述問題一直沒有思路。直到今天在頭條遇到一個四川的網(wǎng)友,給我留言,指了一個方向,才算是真正地把問題解決了,效果很好,我把解決方案寫成文章,希望幫助到后來的朋友——
一言蔽之:通過查詢windows窗體句柄來確認是否來電。
具體做法:
1、下載微軟官方出品的Spy++工具,這個工具可以實時獲取windows當前運行的所有程序的句柄、窗體名、類名、進程等關(guān)鍵信息,如下圖:

2、啟動這個工具后,然后撥通微信通話,等來電鈴聲響起“接聽對話框”出現(xiàn)的時候,Spy軟件就會出現(xiàn)這個對話框的窗體信息。
3、在錄音機程序里創(chuàng)建一個timer,每秒鐘查詢一下是否有來電對話框,【有】則觸發(fā)顯示錄音機窗體,【無】則在通知欄保持靜默。

代碼片段

來電時 錄音機彈出的實際效果
程序即方法,方法知道了實現(xiàn)起來就十幾分鐘的事兒,希望這篇文章的解題思路能幫到后面的朋友。
擴展閱讀:
關(guān)于錄音機軟件本身實現(xiàn)的文章,核心知識點:同時錄Mic聲音和聲卡聲音,然后通過ffmpeg進行音軌合并。