Android--音频开发--信号从麦克风到扬声器的处理流程

信号从麦克风到扬声器的处理流程—-示意图

Android--音频开发--信号从麦克风到扬声器的处理流程_第1张图片


基础知识简介

音频采集API

MediaRecorder
    更加上层一点的API
    它可以直接把手机麦克风录入的音频数据进行编码压缩(如AMR、MP3等)并存成文件
    MediaRecorder 底层也是调用了 AudioRecord 与 Android Framework 层的 AudioFlinger 进行交互的。


AudioRecord
    更接近底层
    能够更加自由灵活地控制,可以得到原始的一帧帧PCM音频数据。
    它采集到的音频数据是原始的PCM格式,想压缩为mp3,aac等格式的话,还需要专门调用编码器进行编码

音频播放API

MediaPlayer
    更加适合在后台长时间播放本地音乐文件或者在线的流式资源;

SoundPool
    适合播放比较短的音频片段,比如游戏声音、按键声、铃声片段等等,它可以同时播放多个音频;

AudioTrack
    更接近底层,提供了非常强大的控制能力,支持低延迟播放,适合流媒体和VoIP语音电话等场景。

MediaCodec简介

MediaCodec API
    该 API 是在 Andorid 4.1 (API 16) 版本引入的,因此只能工作于 Android 4.1 以上的手机上。
(1)提供了一套访问 Android 底层多媒体模块的接口,主要是音视频的编解码接口
(2)Android 底层多媒体模块采用的是 OpenMax 框架,任何 Android 底层编解码模块的实现,都必须遵循 OpenMax 标准。
(3)Android 应用层统一由 MediaCodec API 来提供各种音视频编解码功能,由参数配置来决定采用何种编解码算法、是否采用硬件编解码加速等等

MediaExtractor

用于分离视频文件的音轨和视频轨道

更多详细资料:http://ticktick.blog.51cto.com/all/823160/15

你可能感兴趣的:(android,音频开发)