Android音频处理:AudioRecord实现录制、播放、停止和删除PCM文件

8 下载量 92 浏览量 更新于2023-05-12 收藏 226KB PDF 举报
"Android音频处理之通过AudioRecord去保存PCM文件进行录制,播放,停止,删除功能" Android音频处理之通过AudioRecord去保存PCM文件进行录制,播放,停止,删除功能相关知识点: 一、Android音频处理概述 Android音频处理是一个非常复杂的领域,涉及到音频录制、音频播放、音频处理等多个方面。在Android系统中,提供了多种音频处理方式,如MediaRecorder和AudioRecord等。 二、MediaRecorder和AudioRecord的区别 MediaRecorder和AudioRecord都是Android系统提供的音频录制类,但是它们有着明显的区别。MediaRecorder录制的音频文件是经过压缩后的,需要设置编码器,并且录制的音频文件可以用系统自带的Music播放器播放。而AudioRecord录制的是PCM格式的音频文件,需要用AudioTrack来播放,AudioTrack更接近底层。PCM可能更加可以理解为音频的源文件。 三、AudioRecord的优缺点 AudioRecord主要是实现边录边播以及对音频的实时处理,这个特性让他更适合在语音方面有优势。优点是语音的实时处理,可以用代码实现各种音频的封装。缺点是输出是PCM格式文件,如果保存成音频文件,是不能够被播放器播放的,所以必须先写代码实现数据编码以及压缩。 四、MediaRecorder的优缺点 MediaRecorder已经集成了录音、编码、压缩等,支持少量的录音音频格式,大概有aac,amr,3gp等。优点是集成,直接调用相关接口即可,代码量小。缺点是无法实时处理音频;输出的音频格式不是很多,例如没有输出mp3格式文件。 五、使用AudioRecord实现录音、播放、停止、删除功能 要实现录音、播放、停止、删除功能,需要使用AudioRecord和AudioTrack两个类。首先,需要创建一个项目,例如PCMSample,然后写个布局layout_main.xml。然后,需要使用AudioRecord来录制音频,使用AudioTrack来播放音频,并实现停止和删除功能。 六、AudioRecord的使用 使用AudioRecord需要先创建一个AudioRecord对象,然后调用startRecording()方法开始录制音频,使用stop()方法停止录制。录制的音频文件可以用 PCM 格式保存。 七、AudioTrack的使用 使用AudioTrack需要先创建一个AudioTrack对象,然后调用play()方法播放音频,使用stop()方法停止播放。播放的音频文件可以用 PCM 格式读取。 八、实现录音、播放、停止、删除功能的示例代码 下面是一个简单的示例代码,演示如何使用AudioRecord和AudioTrack实现录音、播放、停止、删除功能: //录音 AudioRecord audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC, 44100, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT, buffer.size()); audioRecord.startRecording(); //播放 AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC, 44100, AudioFormat.CHANNEL_OUT_STEREO, AudioFormat.ENCODING_PCM_16BIT, buffer.size(), AudioTrack.MODE_STATIC); audioTrack.play(); //停止 audioRecord.stop(); audioTrack.stop(); //删除 audioRecord.release(); audioTrack.release(); 九、总结 Android音频处理之通过AudioRecord去保存PCM文件进行录制,播放,停止,删除功能是一个非常复杂的领域,需要了解MediaRecorder和AudioRecord的区别,并且需要了解AudioRecord和AudioTrack的使用方法。只有通过不断的学习和实践,才能真正掌握Android音频处理的技术。