首页 > 技术文章 > Audio系统驱动

johnnytan 2020-07-22 21:52 原文

音频系统驱动

Audio系统结构

重点了解内容:

  • AudioFlinger
  • AudioPolicy
  • AudioTrack

以上三个最好使用Demo形式明确其数据流流动形式。

总通信方式大致如下:

android通信方式

Android音频系统的核心是Audio系统

Audio系统框架结构

  • Audio Java Part

与Audio相关的包是android.media

  • Audio JNI Part

生成libandroid_runtime.so

  • Audio 框架

Media库中的一部分,直接被编译成libmedia.so文件,提供了Audio部分接口。包括基于Binder的IPC机制

  • Audio Flinger

被编译成 libaudioflinger.so,Audio的本地服务部分

  • Audio硬件抽象层接口

作为Audio系统本地框架层和驱动程序接口

Audio系统层次

  • Audio本地框架类

libmedia.so文件其中一part,为上层提供接口,由下层去实现

  • AudioFlinger

继承libmedia接口,提供实现库libaudioflinger.so

  • JNI

使用JNI和Java对上层提供接口,JNI通过libmedia库中接口进行实现

  • Audio硬件抽象层

提供硬件接口,供AudioFlinger进行调用。

注:Audio系统不涉及编解码环节,只负责软硬件间交互的作用,所以通常以PCM进行数据传输。

推荐阅读