ZlwAudioRecorder
AudioRecorder: Android 录音及录音可视化相关lib,支持pcm、wav、mp3音频的录制
Install / Use
/learn @zhaolewei/ZlwAudioRecorderREADME
ZlwAudioRecorder
功能
- 使用AudioRecord进行录音
- 实现pcm、wav、mp3音频的录制
- 实时获取录音的音量、及录音byte数据
- 获取wav/mp3录音文件的时长
- 可配置录音的采样率、位宽 (v1.04更新)
- 录音可视化 (v1.05更新)
- 音源支持内录(Android10及以上版本支持) (v1.10更新)
博客
https://www.jianshu.com/p/c0222de2faed
演示视频
https://www.bilibili.com/video/BV1ikCCBREuJ/?vd_source=ec0fc1b63e4c5db56b1eca157710edd7
Gradle
dependencies {
implementation 'com.github.zhaolewei:ZlwAudioRecorder:v1.14'
}
allprojects {
repositories {
...
maven { url 'https://www.jitpack.io' }
}
}
如何使用
- 初始化
-
init
/** * 参数1: Application 实例 * 参数2: 是否打印日志 */ RecordManager.getInstance().init(MyApp.getInstance(), false); -
在清单文件中注册Services
<service android:name="com.zlw.main.recorderlib.recorder.RecordService" /> -
确保有录音权限
- 配置录音参数
-
修改录音格式(默认:WAV)
RecordManager.getInstance().changeFormat(RecordConfig.RecordFormat.WAV); -
修改录音配置
RecordManager.getInstance().changeRecordConfig(recordManager.getRecordConfig().setSampleRate(16000)); RecordManager.getInstance().changeRecordConfig(recordManager.getRecordConfig().setEncodingConfig(AudioFormat.ENCODING_PCM_8BIT)); -
修改录音音源
RecordManager.getInstance().setSource(RecordConfig.SOURCE_MIC); // 麦克风 RecordManager.getInstance().setSource(RecordConfig.SOURCE_SYSTEM); //系统内录 -
修改录音文件存放位置(默认sdcard/Record)
RecordManager.getInstance().changeRecordDir(recordDir); -
录音状态监听
RecordManager.getInstance().setRecordStateListener(new RecordStateListener() { @Override public void onStateChange(RecordHelper.RecordState state) { } } @Override public void onError(String error) { } }); -
录音结果监听
RecordManager.getInstance().setRecordResultListener(new RecordResultListener() { @Override public void onResult(File result) { } }); -
声音大小监听
RecordManager.getInstance().setRecordSoundSizeListener(new RecordSoundSizeListener() { @Override public void onSoundSize(int soundSize) { } }); -
音频数据监听
recordManager.setRecordDataListener(new RecordDataListener() { @Override public void onData(byte[] data) { } }); -
音频可视化数据监听
recordManager.setRecordFftDataListener(new RecordFftDataListener() { @Override public void onFftData(byte[] data) { audioView.setWaveData(data); } });
- 录音控制
- 开始录音
RecordManager.getInstance().start(); - 暂停录音
RecordManager.getInstance().pasue(); - 恢复录音
RecordManager.getInstance().resume(); - 停止
RecordManager.getInstance().stop();
Demo

- 演示视频>>> https://www.bilibili.com/video/av48748708?from=search&seid=7409882966117066343
Related Skills
node-connect
341.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
341.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.6kCommit, push, and open a PR
