先说下录音得开启录音权限
<uses-permission android:name="android.permission.RECORD_AUDIO" />
然后录音和播放得开启线程,防止录制和播放pcm流阻塞UI线程,我这边使用线程池
ThreadPoolExecutor mExecutorService = new ThreadPoolExecutor(
3, 5,
1, TimeUnit.MINUTES,
new LinkedBlockingDeque<>(10),
Executors.defaultThreadFactory(),
new ThreadPoolExecutor.AbortPolicy());
开始线程并且录音实时播放
/**
* 44.1Khz采集率
*/
int sampleRateInHz = 44100;
/**
* 格式 ,单双声道
*/
int channelConfiguration = AudioFormat.CHANNEL_OUT_STEREO;
/**
* 16Bit 音频编码格式
*/
int audioEncoding = AudioFormat.ENCODING_PCM_16BIT;
mExecutorService.execute(() -> {
Log.e(TAG, "开始录音");
try {
int bufferSize = AudioRecord.getMinBufferSize(sampleRateInHz, A