我有一个简单的java应用程序其中应用程序客户端可以发送/接收纯音频UDP数据包到服务器,服务器将把音频数据包中继给除了发送者之外的所有人。
现在我如何使用webRTC EchoCancellation模块或其他功能模块在我的应用程序方面?我发现使用JNI和webRTC c/c++库是可能的(尝试和失败),但我需要一个很好的启动,以知道我应该使用庞大的webRTC代码库的哪一部分以及如何使其工作。
任何帮助是高度赞赏和感谢提前…!!
webRTC模块是用c/c++编写的,可以在java项目中单独使用webRTC音频处理模块。
首先,您可以从官方源代码中探索最近稳定的webRTC代码,并尝试理解其模块中的基本处理部分。或者已经有一些c/c++项目,其中这种类型的处理模块已经分开了。像webRTC aec3(webRTC最新的回声取消模块)一样,您可以探索aec3项目
其次,你必须从模块代码中构建一个绑定的库,它只提供必要的函数
第三,你必须了解JNI(Java Native Interface),它不是那么复杂,几分钟的阅读就可以给你必要的知识。JNI为从java调用本机库代码铺平了道路,您可以从AEC/NS/AGC等模块中和平地调用音频处理函数。