以前在应用中使用到了Speex编解码,近来总结了一下Speex在android上的实现。Speex是一套主要针对语音的开源免费,无专利保护的音频压缩格式。Speex工程着力于通过提供一个可以替代高性能语音编解码来降低语音应用输入门槛 。另外,相对于其它编解码,Speex也很适合网络应用,在网络应用上有着自己独特的优势。同时,Speex还是GNU工程的一部分,在改版的BSD协议中得到了很好的支持。Speex是基于CELP并且专门为码率在2-44kbps的语音压缩而设计的。Speex源码是基于c语音实现的(也有java实现,效率相对较低)。
2、创建新的android工程,并创建jni文件夹。
3、把speex源码目录下的libspeex和include目录及其子目录文件全部拷贝到$project/jni目录下。
4、在jni目录下新增Android.mk文件,编辑内容如下:
5.在jni目录下新增Application.mk文件,编辑内容如下
6.在$project/jni/include/speex/目录下新增speex_config_types.h文件,编辑内容如下
7.创建JNI包装类speex_jni.cpp,用来调用Speex中的C代码函数,编辑内容如下
8.在Java层创建Speex工具类,内容如下:
9、使用cygwin编译,生成so文件。
本文转自xyz_lmn51CTO博客,原文链接:http://blog.51cto.com/xyzlmn/1230787,如需转载请自行联系原作者