• webrtc的音频处理模块apm( audio processing)下载与编译出libwebrtc_audio_preprocessing.so


    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
     
     
     更新
    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目录删除
     
     
     
    最终效果:
    发现在modulesaudio_processing est目录下有unit_test.cc
     
    ndk-build编译,几乎很少改动。即可生成libwebrtc_audio_preprocessing.so
     
    ===================================
     
    上面错误解决:需要将源代码放在一个叫jni的目录中。
     
     
     
    解决:
     
     
     
     
    #include <map>报错
     
    由于 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,在

    webrtccommon_audiosignal_processingAndroid.mk中的LOCAL_SRC_FILES加上
    spl_sqrt_floor.c
     
     
    生成的so
    附:
     
    Application.mkAndroid.mk
     
     
  • 相关阅读:
    系统操作日志设计代码实现
    SQL SERVER 存储过程复习
    IGrab信息采集系统流程图(初稿)
    收藏几段SQL语句和存储过程
    SQL Server联机丛书:存储过程及其创建
    使用dynamic来简化反射实现,并且提高了性能
    你必须知道的C#的25个基础概念(附演示)
    弹窗插件
    dede 搜索时出现“SphinxClient类找不到”解决
    开启includes模块运行shtml
  • 原文地址:https://www.cnblogs.com/lidabo/p/7324080.html
Copyright © 2020-2023  润新知