allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.Chen-Xi-g:AudioDemo:v1.0.3'
}
/**
*在需要进行音频录制的页面进行初始化
*如果不设置setAudioSource(),setAudioEncoder(),setOutputFormat(),setDecibelSpace()会使用默认值进行输出
*/
MediaRecorderUtils mMediaRecorderUtils = new MediaRecorderUtils.Builder(this)
.setAudioSource(MediaRecorder.AudioSource.MIC)//麦克
.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_WB)//AMR
.setOutputFormat(MediaRecorder.OutputFormat.AMR_WB)//AMR
.setDecibelSpace(500)//获取分贝的间隔
.build();
//设置最大录制时间 秒,需要在start前调用
MediaRecorderUtils.setMaximum(int second);
//开始录制
MediaRecorderUtils.start();
//停止录制
MediaRecorderUtils.stop();
//判断当前是否正在进行录制
MediaRecorderUtils.isRecording();
//获取音频文件路径
MediaRecorderUtils.getPath();
//获取当前所有已录制音频文件路径
MediaRecorderUtils.getPathList();
//在Activity或Fragment的onDestory中调用,页面销毁时会保存音频
MediaRecorderUtils.onDestroy();
//音频录制监听回调
MediaRecorderUtils.setMediaRecorderCallBack(new MediaRecorderUtils.MediaRecorderCallBack() {
@Override public void start() {
//开始录制
Log.i(TAG, "开始录制");
}
@Override public void stop() {
//结束录制
Log.i(TAG, "结束录制");
}
@Override public void ioError(String ioError) {
//错误
Log.i(TAG, "发生错误" + ioError);
}
@Override public void error(String error) {
//错误
Log.i(TAG, "发生错误" + error);
}
@Override public void process(int second) {
//已录制秒数
Log.i(TAG, "已经录制了:" + second);
}
@Override public void decibel(int decibel) {
Log.i(TAG, "分贝大小:" + decibel);
}
});
/**
*如果你需要自定义录制文件保存的路径请下载lib中的MediaRecorderUtils代码。