- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android_Audio系统概述
Android Audio系统/xxw8393/blog/item/2879a5601e47b1d48cb10d20.html
7.1? Audio系统综述?? Audio系统在Android中负责音频方面的数据流传输和控制功能,也负责音频设备的管理。这个部分作为 Android的Audio系统的输入/输出层次,一般负责播放PCM声音输出和从外部获取PCM声音,以及管理声音设备和设置。Audio系统主要分成如下几个层次:1.#0;(1)media库提供的Audio系统本地部分接口;2.#0;(2)AudioFlinger作为Audio系统的中间层;3.#0;(3)Audio的硬件抽象层提供底层支持;4.#0;(4)Audio接口通过JNI和Java框架提供给上层。Audio系统的各个层次接口主要提供了两方面功能:放音(Track)和录音(Recorder)。? Android的Audio系统结构如图7-1所示。图7-1? Android的Audio系统结构Android系统的代码分布情况如下所示:(1)Audio的Java部分代码路径:frameworks/base /media/java/android/media与Audio相关的Java包是 android.media,主要包含AudioManager和Audio系统的几个类。(2)Audio的JNI部分代码路径:frameworks/base /core/jni生成库 libandroid_runtime.so,Audio的JNI是其中的一个部分。(3)Audio的框架部分头文件路径:frameworks/base /include/media/源代码路径:frameworks/base /media/libmedia/Audio本地框架是media库的一部分,本部分内容被编译成库libmedia.so,提供Audio部分的接口(包括基于Binder的IPC机制)。(4)Audio Flinger代码路径:frameworks/base/libs/audioflinger这部分内容被编译成库 libaudioflinger.so,它是Audio系统的本地服务部分。(5)Audio的硬件抽象层接口头文件路径:hardware/libhardware_legacy/include/hardware/Audio硬件抽象层的实现在各个系统中可能是不同的,需要使用代码去继承相应的类并实现它们,作为Android系统本地框架层和驱动程序接口。7.2? Audio系统和上层接口?? 在Android中,Audio系统自上而下由Java的Audio类、Audio本地框架类、 AudioFlinger和Audio的硬件抽象层几个部分组成。è 7.2.1? Audio系统的各个层次Audio系统的各层次情况如下所示。Audio本地框架类是libmedia.so的一个部分,这些Audio接口对上层提供接口,由下层的本地代码去实现。AudioFlinger继承libmeida中的接口,提供实现库libaudiofilnger.so。这部分内容没有自己的对外头文件,上层调用的只是libmedia本部分的接口,但实际调用的内容是libaudioflinger.so。Audio使用JNI和Java对上层提供接口,JNI部分通过调用libmedia库提供的接口来实现。Audio的硬件抽象层提供到硬件的接口,供AudioFlinger调用。Audio的硬件抽象层实际上是各个平台开发过程中需要主要关注和独立完成的部分。提示:Android的Audio系统不涉及编解码环节,只是负责上层系统和底层Audio硬件的交互,一般以PCM作为输入/ 输出格式。在Android的Audio系统中,无论上层还是下层,都使用一个管理类和输出输入两个类来表示整个 Audio系统,输出输入两个类负责数据通道。在各个层次之间具有对应关系,如表7-1所示所示。表7-1? Android各个层次的对应关系Audio管理环节Audio输出Audio输入Java层android.media.AudioSystemandroid.media.AudioTrackandroid.media.AudioRecorder本地框架层AudioSystemAudioTrackAudioRecorderAudioFlingerIAudioFlingerIAudioTrackIAudioRecorder硬件抽象层Au
文档评论(0)