android工程中使用speex源码通过Cygwin生成libspeex.so
来源:互联网 发布:软媒win10优化工具 编辑:程序博客网 时间:2024/06/05 18:44
使用speex源码 通过Cygwin 生成libspeex.so 文件供android使用
Speex是一套主要针对语音的开源免费,无专利保护的音频压缩格式。Speex工程着力于通过提供一个可以替代高性能语音编解码来降低语音应用输入门槛 。另外,相对于其它编解码器,Speex也很适合网络应用,在网络应用上有着自己独特的优势。同时,Speex还是GNU工程的一部分,在改版的BSD协议中得到了很好的支持
1 下载speex源码 我用的是 speex-1.2rc1
2 在eclipse中创建android应用,直接空应用就可以,什么内容不需要,因为我们不需要在eclipse做任何编译工作
3 在$project下创建jni文件夹,把speex源码目录下的libspeex和include目录及其子目录文件全部拷贝到$project/jni目录下($project/jni/libspeex and $project/jni/include)
4 在$project/jni/include/speex/目录下speex_config_types.h.in文件改为speex_config_types.h文件
编辑内容
#ifndef __SPEEX_TYPES_H__
#define __SPEEX_TYPES_H__
typedef short spx_int16_t;
typedef unsigned short spx_uint16_t;
typedef int spx_int32_t;
typedef unsigned int spx_uint32_t;
#endif
5 在android中创建含有native本地方法的类Speex,我的包名是com.sleaf.speex.encode
参考源码中代码
进入cmd控制台,进入src文件夹下
用javah -jni com.sleaf.speex.encode.Speex(注意大小写) 生成头文件
com_sleaf_speex_encode_Speex.h
这个文件是自动生成的不要去修改它
当然这里的前提是你有在环境变量中配置好java环境,要配置到bin下,面里面含有javah.exe
6 把头文件com_sleaf_speex_encode_Speex.h拷贝到$project/jni下
7 在$project/jni下创建JNI包装类speex_jni.cpp,用来调用Speex中的C代码函数
参考源码中代码
8 准备工作都做完了,现在只需要在Cygwin下生成libspeex.so
打开Cygwin工具,切换到项目根目录(我项目是在E:\workspace\speex),输入$NDK_ROOT/ndk-build
NDK_ROOT 是你本机上配置好的NDK的环境变量
9 把对应Speex类文件拷贝到要使用的工程中,包名不能换不然会报错。同时把含有libspeex.so的libs拷贝到要使用工程的libs中。这时我们就可以通过本地方法使用speex了
附上源码http://download.csdn.net/detail/sleafye/8347247
直接在Cygwin中即可编译
0 0
- android工程中使用speex源码通过Cygwin生成libspeex.so
- Speex手册----Speex编/解码API的使用(libspeex)
- Speex手册----Speex编/解码API的使用(libspeex) 中文翻译
- 编译Speex生成so库文件(android-speex)
- Android中使用SPeex
- 使用cygwin生成.so库文件
- 3. Android工程中使用FFmpeg的so库 -- JNI头文件的生成
- cygwin生成so
- cygwin 生成.so
- android SDK使用cygwin编译.so文件
- Android NDK学习(4)使用cygwin生成.so库文件
- Android NDK、cygwin安装及通过示例导出so库
- 使用NDK-r8与Cygwin编译生成so库
- android工程so文件生成命令
- 在android源码下编译生成.so
- windows xp 中cygwin 下载android源码
- windows下如何通过cygwin下载Android源码
- Android Speex编译及使用
- 基于共享内存的key-value存储
- WOJ-1316
- cocos2dx3.2开发 RPG《Flighting》(五)只能行走的战斗场景
- Qt5学习笔记(3)——树形控件QtreeWidget
- String and Text Processing(字符串和文本处理)
- android工程中使用speex源码通过Cygwin生成libspeex.so
- 在eclipse(android developer tool)上配置github环境,用于团队开发时的项目管理
- HBase连接池 HTablePool被Deprecated之后
- 看了一篇电子电子工程师的总结很经典,用来提醒自己
- [2.x] Cocos2d-x之CCMenu
- DNA Consensus String, ACM/ICPC Seoul 2006, UVa1368
- svn
- OC属性property
- iOS 7 教程:让程序同时支持iOS 6和iOS 7