信号从麦克风到扬声器的处理流程—-示意图
基础知识简介
音频采集API
MediaRecorder
更加上层一点的API
它可以直接把手机麦克风录入的音频数据进行编码压缩(如AMR、MP3等)并存成文件
MediaRecorder 底层也是调用了 AudioRecord 与 Android Framework 层的 AudioFlinger 进行交互的。
AudioRecord
更接近底层
能够更加自由灵活地控制,可以得到原始的一帧帧PCM音频数据。
它采集到的音频数据是原始的PCM格式,想压缩为mp3,aac等格式的话,还需要专门调用编码器进行编码
音频播放API
MediaPlayer
更加适合在后台长时间播放本地音乐文件或者在线的流式资源;
SoundPool
适合播放比较短的音频片段,比如游戏声音、按键声、铃声片段等等,它可以同时播放多个音频;
AudioTrack
更接近底层,提供了非常强大的控制能力,支持低延迟播放,适合流媒体和VoIP语音电话等场景。