【Android 7.0 Audio 】Andriod Audio Overview

来源:互联网 发布:天涯明月刀ol捏脸数据 编辑:程序博客网 时间:2024/05/16 22:02

转载自http://blog.csdn.net/xiashaohua/article/details/53818755

整个android平台的音频框架图如下,

 

 

 APP

音乐播放器,录音,音效设置,电话,声音设置,视频播放器等使用声音的软件。

 

 

  Framework

MediaPlayer和MediaRecorder,AudioTrack和AudioRecorder,提供声音播放和录制。MediaPlayer/MediaRecorder功能更强大,也更易于使用。

AudioManager、AudioService及AudioSystem等类提供声音控制、通道选择、音效设置等功能。

这一层主要是桥接功能,封装native层提供的服务。

 

 

  Native

AudioTrack、AudioRecorder、MediaPlayer、MediaRecorder、AudioSystem对应java层的相关类,代码放置在frameworks/av/media/libmedia中, C++语言编写,编译后成为libmedia库。

AudioFlinger和AudioPolicyService是核心代码,它们的代码在frameworks/av/services/audioflinger,编译后成为libaudioflinger库,运行在AudioServer系统进程。

MediaPlayerService也是系统服务,提供音视频的播放功能,它的代码位置在frameworks/av/media/libmediaplayerservice。

 

 

 HAL

HAL是AudioFlinger向下访问的对象,厂商会在这一层实现自己的接口层,桥接硬件驱动和上层框架,形成的文件会编译成audio.primary.*,audio.a2dp.*等so库文件供音频模块加载。