1 编译过程:
由于便于过程与环境各不相同,简单记录编译思路为,抽出webrtc单独模块,根据头文件链接,将所需源文件记录于Android.mk。直至该模块所有源文件齐全,编译出so。
2 使用记录
demo提供实例为文件回音消除方案,实际语音对讲项目多采用多线程,一条接收,一条录制编码,发送等,所以需在demo基础上进行改动。具体代码如下:
#include "AcemNative.h"
void *AecmInst;
int miniBufferSize;
int delayTime;
JNIEXPORT jint JNICALL Java_com_stream_WebRtc_AcemInit(JNIEnv *env, jclass cls,jint rate,jint miniSize,jint delay){//初始化参数
LOGD("webrtc acem init rate % d , minisize %d",rate,miniSize);
AecmInst = WebRtcAecm_Create();
WebRtcAecm_Init(AecmInst, rate);
AecmConfig config;
config.cngMode = AecmTrue;
config.echoMode = 4;//回音消除等级 0 - 4
WebRtcAecm_set_config(AecmInst, config);
miniBufferSize = miniSize;
delayTime = delay;
return 0;
}
JNIEXPORT jint JNICALL Java_com_stream_WebRtc_AcemCompareData(JNIEnv *env, jclass cls,jbyteArray compare){
jbyte* inBuffer = env->GetByteArrayElements(compare, 0);
jint