之前做的一个demo,Android录音获取pcm数据(音频原始数据),然后利用 FFmpeg将PCM数据编码成AAC。
一、准备工作
开发环境
jdk1.8
Eclipse Luna Service Release 1 (4.4.1)
运行环境:
华为荣耀6(Android4.4)、华为p9(Android7.0)
二、程序实现
代码截图如下:
该demo依赖v7包。
FFAacEncoderDemo工程src目录MainActivity.java是主界面,用来控制录音开始和结束。
FFAacEncoder.java时native方法,用来和jni通信。
jni目录:include目录下是FFmpeg的一些.h文件
libs目录下是FFmpeg编译的so
AacCoderc 音频编码
cn_vn_aacEncoder_jni_FFAacEncoderJni jni代码与java通信。
1 录音(获取pcm数据)
开始录音private void startRecord(){
Log.i(TAG, "startRecord mIsRecording="+mIsRecording);
if(!mIsRecording){
mIsRecording = true;
synchronized (mLock) {
mAudioRecordGetExit = false;
}
//初始化ffmpeg 编码器
mFFAacEncoderJni.start();
//创建录音线程、开始录音
mAudioRecordGetThread = new Thread(new AudioRecordGet());
mAudioRecordGetThread.start();
}
}
关闭录音privat