Android音频处理:AudioRecord实现录制、播放、停止和删除PCM文件
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音频处理的技术。
2012-06-17 上传
2021-01-06 上传
2023-06-07 上传
2023-06-02 上传
2023-09-26 上传
2023-06-08 上传
2023-05-10 上传
2023-06-07 上传
weixin_38677806
- 粉丝: 5
- 资源: 938
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展