博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Audio
阅读量:6209 次
发布时间:2019-06-21

本文共 2258 字,大约阅读时间需要 7 分钟。

来自:http://source.android.com/devices/audio/index.html

 

Audio

 

Android's audio Hardware Abstraction Layer (HAL) connects the higher-level, audio-specific framework APIs in to the underlying audio driver and hardware. This section includes implementation instructions and tips for improving performance.

Audio Architecture


Android audio architecture defines how audio functionality is implemented and points to the relevant source code involved in the implementation.

Figure 1. Android audio architecture

Application framework
The application framework includes the app code, which uses the APIs to interact with audio hardware. Internally, this code calls corresponding JNI glue classes to access the native code that interacts with audio hardware.
JNI
The JNI code associated with calls lower level native code to access audio hardware. JNI is located in
frameworks/base/core/jni/ and
frameworks/base/media/jni.
Native framework
The native framework provides a native equivalent to the package, calling Binder IPC proxies to access the audio-specific services of the media server. Native framework code is located in
frameworks/av/media/libmedia.
Binder IPC
Binder IPC proxies facilitate communication over process boundaries. Proxies are located in
frameworks/av/media/libmedia and begin with the letter "I".
Media server
The media server contains audio services, which are the actual code that interacts with your HAL implementations. The media server is located in
frameworks/av/services/audioflinger.
HAL
The HAL defines the standard interface that audio services call into and that you must implement for your audio hardware to function correctly. The audio HAL interfaces are located in
hardware/libhardware/include/hardware. For details, see .
Kernel driver
The audio driver interacts with your hardware and HAL implementation. You can use Advanced Linux Sound Architecture (ALSA), Open Sound System (OSS), or a custom driver (HAL is driver-agnostic).

Note: If you use ALSA, we recommend external/tinyalsa for the user portion of the driver because of its compatible licensing (the standard user-mode library is GPL-licensed).

Android native audio based on Open SL ES
(not shown)
This API is exposed as part of and is at the same architecture level as .

转载地址:http://pcdja.baihongyu.com/

你可能感兴趣的文章
记JavaScript的入门学习(二)
查看>>
C++程序员必知必会的技巧:RAII
查看>>
6.<1>四则运算的研究[栈]
查看>>
在jupyter中配置python3
查看>>
LOJ#2249 Luogu P2305「NOI2014」购票
查看>>
win7+idea+maven搭建spark源码阅读环境
查看>>
解读route命令
查看>>
Spring-Spring Bean后置处理器
查看>>
3D Touch
查看>>
linux shell 自定义函数(定义、返回值、变量作用域)介绍
查看>>
4、Oracle用户、权限、角色
查看>>
aiohttp 基于异步库的请求替代品
查看>>
高并发大流量专题---7、动态语言静态化
查看>>
ajax的get请求
查看>>
Python_编程特色
查看>>
C语言基础学习7:返回指针值的函数
查看>>
IE6/7下Select控件Display属性无效解决办法
查看>>
<<深入浅出nodeJS>>读书笔记--<二>
查看>>
Linux Kconfig及Makefile学习
查看>>
struts请求源码的跟踪
查看>>