Android 音频架构定义了音频功能的实现方式,并指出实现中所涉及的相关源代码。
- 应用框架
应用框架包含应用代码,该代码可使用 android.media API 与音频硬件进行交互。在内部,此代码会调用相应的 JNI 粘合类,以访问与音频硬件交互的原生代码。
源代码目录:frameworks/base/media/java/android/media/
- AudioManager:音频管理器,包括音量管理、AudioFocus管理、音频设备管理、模式管理;
- 录音:AudioRecord、MediaRecorder,采集音频数据;
- 播放:AudioTrack、MedaiPlayer、SoundPool、ToneGenerator,播放数据api;
- 编解码:MediaCodec,音视频数据 编解码接口。
- JNI
与 android.media 关联的 JNI 代码可调用较低级别的原生代码,以访问音频硬件。JNI 位于 frameworks/base/core/jni/ 和 frameworks/base/media/jni 中。 - Native framework 原生框架
原生框架可提供相当于 android.media 软件包的原生软件包,从而调用 Binder IPC 代理以访问媒体服务器的特定于音频的服务。原生框架代码位于 frameworks/av/media/libmedia 或frameworks/av/media/libaudioclient中(不同