Skip to content

AudioRecorder: Android 录音及录音可视化相关lib,支持pcm、wav、mp3音频的录制

License

Notifications You must be signed in to change notification settings

zhaolewei/ZlwAudioRecorder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f2eb022 · Dec 25, 2023

History

46 Commits
Dec 24, 2023
Dec 25, 2023
Apr 8, 2019
Dec 24, 2023
Dec 24, 2023
Aug 20, 2018
Sep 21, 2021
Apr 21, 2023
Dec 24, 2023
Dec 24, 2023
Dec 24, 2023
Dec 24, 2023
Jul 4, 2018
Dec 24, 2023
Dec 24, 2023

Repository files navigation

ZlwAudioRecorder

功能

  1. 使用AudioRecord进行录音
  2. 实现pcm、wav、mp3音频的录制
  3. 实时获取录音的音量、及录音byte数据
  4. 获取wav/mp3录音文件的时长
  5. 可配置录音的采样率、位宽 (v1.04更新)
  6. 录音可视化 (v1.05更新)
  7. 音源支持内录(Android10及以上版本支持) (v1.09更新)

博客

https://www.jianshu.com/p/c0222de2faed

Gradle

dependencies {
        implementation 'com.github.zhaolewei:ZlwAudioRecorder:v1.09'
}

allprojects {
    repositories {
        ...
        maven { url 'https://www.jitpack.io' }
    }
}

如何使用

  1. 初始化
  • init

    /**
    * 参数1: Application 实例
    * 参数2: 是否打印日志   
    */
    RecordManager.getInstance().init(MyApp.getInstance(), false);
  • 在清单文件中注册Services

    <service android:name="com.zlw.main.recorderlib.recorder.RecordService" />
  • 确保有录音权限

  1. 配置录音参数
  • 修改录音格式(默认: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);
          }
        });
  1. 录音控制
  • 开始录音
    RecordManager.getInstance().start();
  • 暂停录音
    RecordManager.getInstance().pasue();
  • 恢复录音
    RecordManager.getInstance().resume();
  • 停止
    RecordManager.getInstance().stop();

Demo

Demo.png

About

AudioRecorder: Android 录音及录音可视化相关lib,支持pcm、wav、mp3音频的录制

Resources

License

Stars

Watchers

Forks

Packages

No packages published