项目中需要用音频格式转换,之前使用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-x64\android-ndk-r7目录下

配置Cygwin Windows环境变量

CYGWIN_HOME Cygwin安装目录
添加path %CYGWIN_HOME%\bin;

编译Speex代码

  1. 下载Speex代码

    官网的speex1.2rc代码文件不全,浪费我很多时间,不建议下载。

    Speex代码下载:http://pan.baidu.com/s/1pJXrw9P
  2. 编译前项目代码结构



    可以看到我的项目代码目录 -> F:\workspace\android-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

编译Speex生成so库文件(android-speex)的更多相关文章

  1. 由动态库文件dll生成lib库文件(手动生成.def文件,然后使用lib命令编译,非常牛),同理可使用dll生成.a库文件

    本文基于OpenBlas的编译和安装,来说明如何从一个dll文件生成lib库文件. 参考OpenBlas的说明“Howto generate import library for MingW”,和Mi ...

  2. 修改OpenSSL默认编译出的动态库文件名称

    在 Windows 平台上调用动态链接库 dll 文件时,有两种方式:a) 隐式的加载时链接:使用 *.lib (导入库)文件,在 IDE 的链接器相关设置中加入导入库 lib 文件的名称,或在程序中 ...

  3. gcc编译工具生成动态库和静态库之一----介绍

     1.库的分类 根据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. ...

  4. 编译 python 生成静态库 libpython2.7.so

    由于我们是C++作驱动的Python开发,驱动需要加上Python静态库libpython2.7.so.libpython2.7.so.1.0.libpython2.7.a.此处我想在python源码 ...

  5. Makefile学习(二)----生成静态库文件

    Lunix下编译静态库文件: .o后缀文件:编译生成的中间代码文件: .a后缀文件:静态库文件,编译的时候会合到可执行程序中,文件比较大: .so后缀文件:动态库文件,只是一个指向,不会合到可执行程序 ...

  6. 由动态库文件dll生成lib库文件

    本文基于OpenBlas的编译和安装.来说明怎样从一个dll文件生成lib库文件. 參考OpenBlas的说明"Howto generate import library for MingW ...

  7. gcc编译工具生成动态库和静态库

    一. 库的分类 1.1. 静态库(.a) 1.1.1. 静态库的代码在编译过程中已经被载入可执行程序,因此体积比较大.所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行. 1. ...

  8. Android NDK入门实例 计算斐波那契数列二生成.so库文件

    上一篇文章输生成了jni头文件,里面包含了本地C代码的信息,提供我们引用的C头文件.下面实现本地代码,再用ndk-build编译生成.so库文件.由于编译时要用到make和gcc,这里很多人是通过安装 ...

  9. Linux下编译tinyxml生成动态库

    首先去到sourceforge下载tinyxml的源码,https://sourceforge.net/projects/tinyxml/?source=dlp,最新版本是2.6.2. 将下载成功的t ...

随机推荐

  1. ubuntu下谷歌浏览器字体模糊解决方案

    一般来说,这种问题应该是缺少字体造成的,因此重新安装字体就可以解决问题. 1.双系统下,查找Windows C盘下:Windows/font/???? ???可在3中查找相应字体 2.分别双击安装那两 ...

  2. Microsoft Edge 首个 Chromium 内核版释出

    翻译功能释出 navigator.userAgent"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, ...

  3. BroadcastReceiver广播接受者简单使用

    1.注册BrocadcastReceiver <receiver android:name=".FirstReceiver" > <!-- 指定能够接收的广播类型 ...

  4. 基于XMPP利用openfire简单的即时通讯

    功能的实现结果:能够使自己编写客户端与spark客户端信息通讯,将接受到的信息更新到textview上. 1.下载openfire并安装.设置域名,添加用户 2.下载安装spark客户端 3.jar包 ...

  5. ContentType 列表

    CONTENTTYPE是html里面都带有的,ASP只是设置当前的CONTENTTYPE在浏览器中,ContentType一般指定当前的文档内容,浏览器即根据相应的MIME及Content-Type映 ...

  6. jquery的animate能渐变background-color

    在freecodecamp 上学习复习时,写了一个demo,引用了 jquery 实现 color 的渐变动画,然后运行测试的时候,发现其他功能都正常,就是无法是实现颜色的动画. 如: $('butt ...

  7. DDD中 与Dto搭配的AutoMapper插件,摘自《NET企业级应用架构设计》

    AutoMapper插件 实现了 DTO与Model的互相映射.

  8. 获取浏览器端的cookie方法

    代码如下: function getCookie(key){ var cookies=document.cookie; if(cookies.length>0){ var start=cooki ...

  9. django.core.exceptions.ImproperlyConfigured: Application labels aren't unique, duplicates: admin

    创建了一个Django项目,且包含一个admin的app,但是在启动Django的是时候抛出了以下异常: Unhandled exception in thread started by <fu ...

  10. Git:Git的安装过程

    Git:Git的安装过程 路径不要存在空格 默认即可,第一项为是否在页面显示 文本编辑器,默认VIM即可 设置环境变量: 1)最安全的选择,path环境变量不会改变,你只能在git bash里使用命令 ...