Android 7.0 Audio : Andriod Audio Overview
2016-12-22 19:00
323 查看
整个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库文件供音频模块加载。
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库文件供音频模块加载。
相关文章推荐
- 关于Android HTML5 audio autoplay无效问题的解决方案
- 微信小程序 Audio API详解及实例代码
- 微信小程序 audio音频播放详解及实例
- 网络资料备忘录
- HTML5 Audio/Video常用控制事件
- Win10系统取消插入耳机后弹出的SmartAudio提示的方法
- 浅谈h5自定义audio(问题及解决)
- HD Audio总线驱动加载失败彻底解决!
- angularjs audio src问题
- audio 标签属性和方法事件
- WAVEFORMATEX 格式说明
- stagefright MKV/WebM parser
- 主板上常见英文标识的解释
- DirectX.Capture
- eDonkey协议
- 电子网站导航 (zz http://blog.163.com/huanghuairen@126/blog/static/19577851200710192333382/)
- 流媒体学习(一)
- 在WinCE6.0下编译DirectShow相关应用时出现题图中的错误链接的解决方法
- iPhone 应用开发:音频播放
- What Is an MXF File?