Android录音转为MP2的实现
利用Android提供的AudioRecord类以及开源编码库twolame,实现了android手机边录音边编码,录音完成直接得到MP2音频文件。由于Android本身不支持MP2的编码,所以要借助NDK将mp2编码库twolame移植到android工程中。MP
2的帧格式参见另一篇博文MP2帧格式介绍。
源码下载地址
http://download.youkuaiyun.com/detail/u012741756/9789885
- 开发环境:Windows
- 开发工具:Android Studio 2.2.3和NDK
- 开发包:twolame 0.3.13 twolame下载地址
一 设计思路
利用Android提供的AudioRecord类,采集声音样本PCM数据,MP2规定1152个声音样本构成一帧,所以在新的线程中循环读1152个样本数据,当读到数据后立即进行编码,将1152个PCM数据转为一帧MP2,保存到文件中,录音结束直接得到MP2音频文件。其中编码部分采用开源MP2编码库twolame,利用JNI将twolame整合到Android工程中。如果想存为MP3音频文件,将twolame编码库换成lame编码库,再修改一些地方即可。
二 twolame的Android平台移植,生成.so文件
2.1 新建Android工程
新建android empty project,工程目录切换到Project视图,app右键新建jni文件夹,如下图:
找到你的工程目录,比如我的在F:\AndroidStudioProjects\RecMicToMp2Doc\app\src\main\jni,将twolame 0.3.13文件夹下的libtwolame文件夹拷贝到jni文件夹下,此时你的工程目录应该是这样子的&