在Android与IOS上面如果做录音功能,一般手机录制出来的音频格式都不是MP3,为了两个平台的APP的录音文件一致,需要选择一种两个平台都支持播放且占用存储空间不会太大的音频文件格式,这里MP3就符合这一需求。我们这里选择libmp3lame把AudioRecord音频流直接转换成MP3格式。 本文使用eclipse进行开发 那下面就开始我们的前期工作
1.给eclipse增加NDK开发支持我这里使用的不是Cygwin,而是谷歌提供的android-ndk-r10e,大家自行下载并配置环境变量,这里就不多说。
2.下载Lame源码我这里为了方便大家下载,上传了一个版本为lame-3.99.5的源码包,地址为http://download.csdn.net/download/q919233914/9740509 大家也可以在这里下载最新的lame,https://sourceforge.net/projects/lame/files/lame/ 不过有可能被墙
工程结构如下 我们在这里创建一个名称为jni的文件夹,目录树如下图
1. 我们将上文下载好的lame源码解压,复制lame-3.99.5/libmp3lame 到jni目录里,改名为lame-3.99.5_libmp3lame(这个名字大家随意取,后面要用到)
2. 将源码中lame.h (include目录下),拷贝到jni/lame-3.99.5_libmp3lame/lame.h
3. 对lame-3.99.5_libmp3lame下的源码进行处理,处理如下 a. 删除非.c/.h文件: Makefile.am、Makefile.in、depcomp、logoe.ico、 b. 删除文件夹i386及其目录下的文件 c. 编辑 util.h文件。
把extern ieee754_float32_t fast_log2(ieee754_float32_t x);替换为extern float fast_log2(float x);。如果忘了替换,编译时会报出以下错误:
[armeabi] Compile thumb : mp3lame
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?