webrtc音頻增益模塊不是我寫的,是這位仁兄使用C++寫的https://www.cnblogs.com/mod109/p/5767867.html
這次我做了一次搬運工,我做的工作是使用C#封裝他寫的C++功能模塊,如何使用C#封裝C++細節和詳細步驟可以參考我寫的博客https://blog.csdn.net/zxy13826134783/article/details/105958311
本文測試的環境:
win7
vistual studio 2012
本文所使用的項目源碼下載鏈接:http://zxy15914507674.gitee.io/shared_resource_name/WebRtc資源文件.rar
首先說明一下項目源碼的資源分佈,如下圖:
要封裝的C++功能函數WebRtcTestOutput.cpp:
到了C#定義委託與之對應(參數類型可以原封不動拷貝C++的):
下面講解NoiseSuppression32函數中的char* 類型的數據如何在C#中轉換
可以使用:
string fileNameInput="你輸入的string文本"
System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(fileNameInput).ToPointer()就可以把string類型數據轉換爲char*類型數據,轉換例子如下:
當然你可以不用那麼麻煩,直接在定義委託時,把參數類型爲char*的替換爲string即可