由于《深入理解Android 卷一》和《深入理解Android卷二》不再出版,而知识的传播不应该因为纸质媒介的问题而中断,所以我将在CSDN博客中全文转发这两本书的全部内容。第7章 深入理解Audio系统本章主要内容· 详细分析AudioTrack。· 详细分析AudioFlinger。· 详细分析AudioPolicyService。本章涉及的源代码文件名及位置下面是本章分析的源码文件名...
分类:
移动开发 时间:
2015-08-02 16:48:56
阅读次数:
741
这里主要讲简练地讲了Serivce与HAL的接口关系,两个重要的数据结构
hw_module_t (有通过methods->open成员,这里顺便再讲下hw_methods_t)
hw_device_t (有直接close成员)
这两个成员在hardware.h中,有必要记住成员关系struct hw_module_t;
struct hw_module_methods_t;...
分类:
其他好文 时间:
2015-07-22 10:48:50
阅读次数:
143
MediaServer中包括了系统中的许多重要的Server:
AudioFlinger:音频系统中的核心服务
AudioPolicyService:音频系统中关于音频策略的重要服务
MediaPlayerService:多媒体系统中的重要服务
CameraService:有关照相和摄像的重要服务
同时,分析MediaServer对于理解Android中的IPC机制能够提供较好的帮助。Android...
分类:
移动开发 时间:
2015-03-28 08:53:08
阅读次数:
734
1.1 AudioPolicy Service在AudioFlinger小节,我们反复强调它只是策略的执行者,而AudioPolicyService则是策略的制定者。这种分离方式有效地降低了整个系统的藕合性,而且为各个模块独立扩展功能提供了保障。1.1.1 AudioPolicyService概述汉...
分类:
移动开发 时间:
2015-01-08 20:09:40
阅读次数:
307
1.1.1 音频设备的管理虽然AudioFlinger实体已经成功创建并初始化,但到目前为止它还是一块静态的内存空间,没有涉及到具体的工作。从职能分布上来讲,AudioPolicyService是策略的制定者,比如什么时候打开音频接口设备、某种Stream类型的音频对应什么设备等等。而AudioFl...
分类:
移动开发 时间:
2015-01-08 20:08:11
阅读次数:
254
1.1.1 AudioPolicyService的路由实现我们在AudioPolicyService小节曾将其比作是一个“路由器”,不过还没有深入解析它是如何完成路由选择的。这部分的功能与使用者——AudioTrack有很大关联,所以我们特别将它的实现原理剖析放在这里,以使读者可以综合起来理解。路由...
分类:
移动开发 时间:
2015-01-08 20:08:11
阅读次数:
240
播放声音可以用MediaPlayer和AudioTrack,两者都提供了java API供应用开发者使用。虽然都可以播放声音,但两者还是有很大的区别的。其中最大的区别是MediaPlayer可以播放多种格式的声音文件,例如MP3,AAC,WAV,OGG,MIDI等。MediaPlayer会在framework层创建对应的音频解码器。而AudioTrack只能播放已经解码的PCM流,如果是文件的话只支持wav格式的音频文件,因为wav格式的音频文件大部分都是PCM流。AudioTrack不创建解码器,所以只能...
分类:
移动开发 时间:
2014-10-11 13:50:55
阅读次数:
488
AudioSystem是AudioPolicyService和AudioFlinger对外提供接口类。...
分类:
移动开发 时间:
2014-10-11 11:20:35
阅读次数:
141
音频基础知识
声音有哪些重要属性呢?
响度(Loudness)
响度就是人类可以感知到的各种声音的大小,也就是音量。响度与声波的振幅有直接关系。
音调(Pitch)
音调与声音的频率有关系,当声音的频率越大时,人耳所感知到的音调就越高,否则就越低。
音色(Quality)
同一种乐器,使用不同的材质来制作,所表现出来的音色效果是不一样的,这是由物体本身的结构特性所决定的。...
分类:
移动开发 时间:
2014-09-24 10:58:17
阅读次数:
266
AudioPolicyService是策略的制定者,比如什么时候打开音频接口设备、某种Stream类型的音频对应什么设备等等。而AudioFlinger则是策略的执行者,例如具体如何与音频设备通信,如何维护现有系统中的音频设备,以及多个音频流的混音如何处理等等都得由它来完成。AudioPolicyService根据用户配置来指导AudioFlinger加载设备接口,起到路由功能。
Audio...
分类:
移动开发 时间:
2014-09-23 20:47:55
阅读次数:
436