Audio概览

Android的音频硬件抽象层(HAL)连接了Android中更高级的、特定于音频的框架api。媒体到底层音频驱动程序和硬件。本节包括提高性能的实现说明和提示。

Android音频架构定义了音频功能的实现方式,并指出了实现过程中涉及的相关源代码。

                                   图1。Android音频架构

Application framework

应用程序框架包括应用程序代码,它使用android。媒体api与音频硬件交互。在内部,该代码调用相应的JNI glue类来访问与音频硬件交互的本地代码

JNI

与android相关的JNI代码。媒体调用较低级的本地代码来访问音频硬件。JNI位于frameworks/base/core/ JNI /和frameworks/base/media/ JNI中。

Native framework

本机框架提供了与android相同的本机。媒体包,调用Binder IPC代理访问媒体服务器的特定于音频的服务。本地框架代码位于frameworks/av/media/libmedia。

Binder IPC

绑定IPC代理促进了进程边界之间的通信。代理位于frameworks/av/media/libmedia中,以字母“I”开头。

Media server

媒体服务器包含音频服务,这些服务是与您的HAL实现交互的实际代码。媒体服务器位于frameworks/av/services/audioflinger中。

HAL

HAL定义了音频服务调用的标准接口,为了使音频硬件正确工作,您必须实现该接口。要了解更多细节,请参考音频HAL接口和*中的注释。对应hal版本目录下的hal文件。

Kernel driver

音频驱动程序与硬件和HAL实现交互。您可以使用高级Linux声音体系结构(ALSA)、开放声音系统(OSS)或自定义驱动程序(HAL是驱动程序不可知的)。

注意:如果您使用ALSA,我们建议将external/tinyalsa用于驱动程序的用户部分,因为它具有兼容的许可(标准用户模式库是gpl许可的)。

Android native audio based on Open SL ES (not shown)

该API作为Android NDK的一部分公开,与Android .media处于相同的架构级别。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值