编译Speex生成so库文件(android-speex)

项目中需要用音频格式转换,之前使用VoAacEncoder,部分手机总是莫名崩溃,所以决定不再使用VoAacEncoder,换做Speex来完成格式转换,但是没有找到Speex的库文件,网上介绍的都是Speex的编译,以前从来没有自己折腾过这些,好在还算顺利完成了,首先感谢一下分享技术的大牛们。

  • Cygwin的安装
  • Cygwin编译Speex代码

Cygwin的安装

  1. 相关资源
    Cygwin下载:https://www.cygwin.com/install.html
    Windows 32位:https://www.cygwin.com/setup-x86.exe
    Windows 64位:https://www.cygwin.com/setup-x86_64.exe
  2. 安装步骤(在线安装)
    Windows上安装软件没有什么需要多说的,这里直接说一下我安装时让我迷惑的地方。
    需要安装的模块:
    ①binutils
    ②gcc-core
    ③gcc-g++
    ④mingw-gcc-core
    ⑤mingw-gcc-g++
    ⑥gdb
    ⑦make

配置Cygwin环境变量($CYGWIN/home/user/.bash_profile):

 NDK=/cygdrive/d/adt-bundle-windows-x64/android-ndk-r7
 export NDK
 注:android-ndk-r7文件在我的D:adt-bundle-windows-x64android-ndk-r7目录下

配置Cygwin Windows环境变量

CYGWIN_HOME Cygwin安装目录
添加path %CYGWIN_HOME%in;

编译Speex代码

  1. 下载Speex代码
    官网的speex1.2rc代码文件不全,浪费我很多时间,不建议下载。
    Speex代码下载:http://pan.baidu.com/s/1pJXrw9P
  2. 编译前项目代码结构
    编译前
    可以看到我的项目代码目录 -> F:workspaceandroid-speex
  3. 打开Cygwin开始编译
    切换目录命令: cd /cygdrive/f/workspace/android-speex/jni
    切换目录
    编译命令: ndk-build
    开始编译
    编译完成
    编译完成
    编译完成后目录结构
    完成后项目结构

我使用Intellij Idea开发,虽说idea不支持ndk,但使用cygwin貌似跟ide没有半毛钱关系,也就是说完全可以抛弃eclipse来开发安卓项目了。好了,现在就可以使用编译好的Speex库了,赶紧改代码去了,写博客挺费时间。

Windows 64位离线文件:http://yun.baidu.com/s/1mgNUbSs

原文地址:https://www.cnblogs.com/magics/p/6654851.html