录音mp3格式(lame 采用边录边转码方式)
窃来的,好几个项目都用,很方便,提取出来形成引用包
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.zhang-hai:Mp3Recorder:1.0.10'
}
//需要先声明权限
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
开始录音
//动态申请权限(略)
if (mRecorder == null) {
mRecorder = new Mp3Recorder();
mRecorder.setOnRecordListener(new Mp3Recorder.OnRecordListener() {
@Override
public void onStart() {
//开始录音
}
@Override
public void onStop() {
//停止录音
}
@Override
public void onError(){
//录音错误,主要针对OPPO手机在调用startRecord方法时弹窗安全权限提示,此时如果拒绝,则会执行该回调
}
@Override
public void onRecording(int i, double v) {
Log.d("MainActivity","采样:"+i+"Hz 音量:"+v+"分贝");
}
});
}
if (!mRecorder.isRecording())
try {
mRecorder.startRecording("/sdcard","record.mp3");
} catch (IOException e) {
e.printStackTrace();
}
停止录音
if (mRecorder!=null && mRecorder.isRecording()){
mRecorder.stopRecording();
}
v1.0.5 设置默认音频采样率未44100Hz,因为Android要求所有设备都要支持该采样率,其他采样率不一定。
v1.0.7
v1.0.8 修改初始化AudioRecord对象是参数AudioSource类型,解决录音文件有噪音的问题;
v1.0.9 修复转码读取pcm数据未对short转化成byte进行转换,造成出现音频中偶尔刺啦声问题;
v1.0.10 开启录音时,提前把mp3File对象构造出来