2017-05-22更新! http://pan.baidu.com/s/1nvbTcRf

jni修改后的代码,可以直接ndk-build出so文件!!!!!!!!

-------------------------------------------------------
webrtc代码在android和chromium项目中都有。但是android中的那个带有Android.mk,稍微修改下就能用ndk-build编译出libwebrtc_audio_preprocessing.so

git clone  https://android.googlesource.com/platform/external/webrtc
 更新 cd webrtc


apm几个模块: NS(Noise Suppression 噪声抑制)、 VAD(Voice Activity Detection 静音检测)、 AECM(Acoustic Echo Canceller for Mobile 声学回声消除) AGC(Auto Gain Control 自动增益控制)

刚开始目录: 删除了modules下的audio_coding目录,并把src改名为webrtc了,当然同时得修改Android.mk中对audio_coding相关mk的引用,还要修改路径,原来是src,要改成webrtc.

最后会生成libwebrtc_audio_coding.so,这个需要在Android.mk中修改。其中有个
LOCAL_MODULE := libwebrtc_audio_coding 把相关的删除,从 include $(CLEAR_VARS) 。。。。 include $(BUILD_SHARED_LIBRARY)
这个也可以通过上面一样的办法删除 LOCAL_MODULE := libwebrtc_audio_coding_gnustl_static

其它文件删除: MODULE_LICENSE_BSD,  NOTICE, TODO test目录删除,.git目录删除


最终效果:
发现在modules\audio_processing\test目录下有unit_test.cc

ndk-build编译,几乎很少改动。即可生成libwebrtc_audio_preprocessing.so

===================================
上面错误解决:需要将源代码放在一个叫jni的目录中。


解决:



#include 报错
由于  NDK  默认使用最小  C++  运行时库进行项目的编译,导致无法编译  WebRTC  中使用诸如 std::map    STL  容器的源码。因此我们需要自行设定适合本项目的  C++  运行时库  gnustl_static
解决: Application.mk APP_ABI := armeabi-v7a APP_STL := gnustl_static APP_PLATFORM :=21


版本问题,

好像webrtc对android的版本要求过高,至少要求2.3.1,所以从原来的2.2换成2.3.1即可

 解决办法:

#APP_PLATFORM := android-8     //对应2.2

APP_PLATFORM := android-9     //对应2.3.1
#APP_STL := stlport_static 
APP_STL := gnustl_static



2.

undefined reference to 'WebRtcSpl_SqrtFloor'

这个函数在spl_sqrt_floor.c,在

webrtc\common_audio\signal_processing\Android.mk中的LOCAL_SRC_FILES加上 spl_sqrt_floor.c \


生成的so 附:


参考: https://github.com/webrtc/samples

更多相关文章

  1. Windows下Android开发环境 搭建
  2. Qt on Android(安卓)Episode 4
  3. Android环境配置(Eclipse全开发环境下载)
  4. android studio升级android.tools:gradle:3.1.1和 gradle4.4
  5. Android(安卓)Studio编译时的那些问题
  6. Android(安卓)Studio ——在不root手机的情况下读取Data目录下的
  7. Android多媒体编程——MediaPlayer播放音乐
  8. Android(安卓)6.0添加自定义铃声
  9. Android(安卓)build.gradle的基本配置参数详解

随机推荐

  1. [Android]使用RecyclerView替代ListView(
  2. andriod 获得机型信息
  3. Android培训班(30)
  4. android 摇一摇功能程序的注意事项
  5. Android中SharedPreferences的使用
  6. Android4.0 隐藏虚拟按键 实现全屏
  7. android 组件生命周期
  8. android studio 中好用的插件————你
  9. Android马赛克效果MosaicView
  10. android 文本切换 TextSwicher