使用C#封装webrtc音频增益模块

webrtc音频增益模块不是我写的,是这位仁兄使用C++写的https://www.cnblogs.com/mod109/p/5767867.html

这次我做了一次搬运工,我做的工作是使用C#封装他写的C++功能模块,如何使用C#封装C++细节和详细步骤可以参考我写的博客https://blog.****.net/zxy13826134783/article/details/105958311

 

本文测试的环境:

win7

vistual studio 2012

本文所使用的项目源码下载链接:http://zxy15914507674.gitee.io/shared_resource_name/WebRtc资源文件.rar

首先说明一下项目源码的资源分布,如下图:

使用C#封装webrtc音频增益模块

 

 

要封装的C++功能函数WebRtcTestOutput.cpp:

使用C#封装webrtc音频增益模块

到了C#定义委托与之对应(参数类型可以原封不动拷贝C++的):

使用C#封装webrtc音频增益模块

 

下面讲解NoiseSuppression32函数中的char* 类型的数据如何在C#中转换

可以使用:

string fileNameInput="你输入的string文本"

System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(fileNameInput).ToPointer()就可以把string类型数据转换为char*类型数据,转换例子如下:

使用C#封装webrtc音频增益模块

 

当然你可以不用那么麻烦,直接在定义委托时,把参数类型为char*的替换为string即可