Android Audio 架构

作者: 极客匠 | 来源:发表于2019-10-17 00:43 被阅读0次

    简介:一个音频系统包含了音频的管理、声音播放、录音和音效几个部分,这几个部分整合协作才能完成音频的功能。

    首先我们先从网上拉来一些图片看一下音频的播放流程和架构。

    1. 播放音乐


      attr
    2. 录音


    3. 打电话



    4. 蓝牙打电话



    Note: DAI - Digital Audio Interface 其实就是I2S/PCM/AC97**

    下面我们来正式介绍一下Android系统上的Audio架构

    如图所示:


    Android的Audio架构分为三大部分:Kernel Space、User Space、App

    • Kernel Space -> Audio Codec Driver :OSS -以前的Linux音频体系结构,被ASLA取代并兼容(ASLA -Advanced Sound Linux Architecture)** 驱动程序来实现
    • User Space(主要讲解):
      • FrameWork: 为便利上层App所设计提供,主要包含AudioManager、AudioService及AudioSystem类,还有AudioTrack、AudioRecord、MediaPlayer、MediaRecord类。
      • Libraries(AudioFlinger):作为Audio系统的核心中控台,是Audio的本地服务,打开hal层的动态库。AudioFlinger继承libmedia中的接口,提供实现库libaudioflinger.so。这部分内容没有对外开放,上层是通过调用的libmedia部分的接口。
      • HAL :从设计上来看,硬件抽象层是AudioFlinger直接访问的对象。这说明了两个问题,一方面AudioFlinger并不直接调用底层的驱动程 序;另一方面,AudioFlinger上层(包括和它同一层的MediaPlayerService)的模块只需要与它进行交互就可以实现音频相关的功 能了。因而我们可以认为AudioFlinger是Android音频系统中真正的“隔离板”,无论下面如何变化,上层的实现都可以保持兼容。
    • App:调用者(这里不做介绍)

    以上就是我们所介绍的Android Audio架构内容。

    相关文章

      网友评论

        本文标题:Android Audio 架构

        本文链接:https://www.haomeiwen.com/subject/hripmctx.html