AudioCapturePlay
基于AudioRecord录制原始pcm音频,使用开源库lame实时转换pcm音频为MP3格式音频,采用Service、MediaPlayer播放MP3,提供录制音频计时器显示,音频音量分贝值显示,音频频谱显示,录制、播放状态控制等git
项目地址
- 单独音频录制播放(github.com/MannaYang/A…)
- 音视频录制合成(github.com/MannaYang/A…)
功能简介
目前包含基本的音频录制、播放操做,功能以下:github
- 基于AudioRecord录制原始PCM格式音频数据
- 基于lame库实时转换PCM音频为MP3格式音频
- 基于原始lame项目中C文件编译生成对应so文件、提供调用lame编码封装类
- 基于FFT格式化PCM数据并实时显示音频频谱
- 提供录制音频计时器显示、音量分贝值显示、录制开始、暂停、继续等状态控制与文件写入
- 提供AudioPlayManager对象控制MediaPlayer播放、暂停、继续状态、Timer定时更新SeekBar进度条
- 提供ObjectAnimator方式实现唱针、唱片旋转、复原动画操做
其它音频格式:app
- wav、m4a、aac可在录制PCM格式实时回调中添加相应头文件、转换操做
lame编解码
- lame_encode_buffer_interleaved 该方法为传入双声道音频buffer,若是AudioCapture中使用AudioFormat.CHANNEL_IN_STEREO
- lame_encode_buffer 该方法为传入单声道音频buffer,若是AudioCapture中使用AudioFormat.CHANNEL_IN_MONO
Chronometer、RoundedBitmapDrawable控件类
- Chronometer为原生计时器,提供计时、倒计时等功能,初始格式为00:00,经过setFormat格式化为00:00:00,暂停、继续计时需减掉已计时时间戳
- RoundedBitmapDrawable可做为圆角Bitmap使用,经过setCornerRadius、setCircular可实现圆角设置、圆型
公共库
- 包含录音控制类、lame编解码cpp文件、编译so文件、Service播放控制类,使用方式参见app中AudioCaptureActivity.class
截图展现
录制开始、暂停、完成 :ide
音频文件 :动画
播放准备 :编码
播放中 :.net
感谢开源
- 音频频谱柱状图 github.com/zhaolewei/M…
- lame编解码库 sourceforge.net/projects/la…
个人我的新球
欢迎加入星球一块儿讨论项目、研究新技术,共同成长!code