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

webrtc\common_audio\signal_processing\Android.mk中的LOCAL_SRC_FILES加上
spl_sqrt_floor.c \
生成的so
附:

webrtc的音频处理模块apm( audio processing)下载与编译出libwebrtc_audio_preprocessing.so的更多相关文章

  1. 单独编译使用WebRTC的音频处理模块

    块,每块个点,(12*64=768采样)即AEC-PC仅能处理48ms的单声道16kHz延迟的数据,而 - 加载编译好的NS模块动态库 接下来只需要按照 此文 的描述在 android 的JAVA代码 ...

  2. 【单独编译使用WebRTC的音频处理模块 - android】

    更新 [2015年2月15日] Bill 这段时间没有再关注 WebRTC 以及音频处理的相关信息,且我个人早已不再推荐单独编译 WebRTC 中的各个模块出来使用.实际上本文的参考价值已经很小了,甚 ...

  3. 【WebRTC音频预处理单元APM的整体编译及使用 - android】

    前言 在写[单独编译使用WebRTC的音频处理模块 - android]一文之前,就一直想直接把WebRTC的音频处理引擎VoE整个儿编译出来供自己的项目使用,但限于技术拙劣.时间紧迫,所以没能成功. ...

  4. 单独编译和使用webrtc音频降噪模块(附完整源码+测试音频文件)

    单独编译和使用webrtc音频增益模块(附完整源码+测试音频文件) 单独编译和使用webrtc音频回声消除模块(附完整源码+测试音频文件) webrtc的音频处理模块分为降噪ns,回音消除aec,回声 ...

  5. 单独编译和使用webrtc音频增益模块(附完整源码+测试音频文件)

    webrtc的音频处理模块分为降噪ns和nsx,回音消除aec,回声控制acem,音频增益agc,静音检测部分.另外webrtc已经封装好了一套音频处理模块APM,如果不是有特殊必要,使用者如果要用到 ...

  6. WebRTC音频预处理单元APM的整体编译及使用

    正文 行的gnu静态库链接路径是针对NDK版本 r8d 的,如读者版本不匹配,请自行找到 libgnustl_static.a 静态库的路径进行替换. 3)本示例并不打算编译 WebRTC 的测试工程 ...

  7. 【jquery】一款不错的音频播放器——Amazing Audio Player

    前段时间分享了一款视频播放器,点击这里.今天介绍一款不错的音频播放器——Amazing Audio Player. 介绍: Amazing Audio Player 是一个使用很方便的 Windows ...

  8. Android智能手机中各种音频场景下的audio data path

    上一篇文章(Android智能手机上的音频浅析)说本篇将详细讲解Android智能手机中各种音频场景下的音频数据流向,现在我们就开始.智能手机中音频的主要场景有音频播放.音频录制.语音通信等.不同场景 ...

  9. html5 音频和视频(audio And video)

    1.音频和视频  Web 上的视频 直到现在,仍然不存在一项旨在网页上显示视频的标准. 今天,大多数视频是通过插件(比如 Flash)来显示的.然而,并非所有浏览器都拥有同样的插件. HTML5 规定 ...

随机推荐

  1. Alpha阶段第五次Scrum Meeting

    情况简述 Alpha阶段第五次Scrum Meeting 敏捷开发起始时间 2016/10/26 00:00 敏捷开发终止时间 2016/10/27 00:00 会议基本内容摘要 汇报各自完成的任务, ...

  2. 今天遇到sqlyog连接不上阿里云的数据库,最后百度解决了...

  3. linux中ls命令

    ls跟dos下的dir命令是一样的都是用来列出目录下的文件 ls参数: -a: ls -a 列出文件下所有的文件,包括以"."开头的隐藏文件(linux下文件隐藏文件是以.开头的, ...

  4. Charles抓Android的数据包

    1. 获得Mac OS的IP地址 2. 对Android手机设置代理,主机IP是步骤1中获得的IP,端口8888

  5. ThinkPHP3.2.3整合smarty模板(一)

    一.php模板引擎有哪些? 1.1 PHPLIB:一套古老且主流的模板引擎,直接在html中使用PHP变量进行编程: 1.2 Template Blocks:一款轻巧且速度非常快的PHP模板引擎,支持 ...

  6. JDBC ODBC区别

    一.JDBC(Java DataBase Connectivity standard) 1.JDBC,它是一个面向对象的应用程序接口(API), 通过它可访问各类关系数据库. 2. 驱动程序(JDBC ...

  7. R语言:规划求解优化ROI

    今天看到一篇文章介绍如何用excel建模对ROI 进行规划求解. 蓝鲸的网站分析笔记 成本 Cost 每次点击费用 CPC 点击量 \[clickRate = \frac{cost}{CPC}\] 转 ...

  8. MySQL 事物控制和锁定语句

    一.MySQL支持对MyISAM和MEMORY存储引擎的表进行表级锁定,对InnoDB存储引擎的表进行行集锁定.默认情况下是自动获得. 二.LOCK TABLES 可以用于锁定当前线程获得的表,如果表 ...

  9. Android 无线调试

    首先保证电脑和手机在统一局域网.并知道手机的局域网 ip1. 用usb线连接手机和电脑,并在电脑终端输入 adb tcpip 5555 adb connect <ip>2. 取消usb连接 ...

  10. java基本算法之冒泡排序

    冒泡排序:是一种较简单的排序算法.它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小:如果前者比后者大,则交换它们的位置.这样,一次遍历之后,最大的元素就在数列的末尾! ...