嵌入式Android音频系统(二)Android音频系统的专用名词解释

对于Android音频系统学习时可能会出现许多名词,这些词光看字面意思可能无法直接理解,为了更好的对Android系统进行学习,特开一章对Android音频系统会出现的名词进行解释,欢迎大家补充。

本专栏将对Android音频系统进行更细致的阐述,同时这些也是我的学习笔记,如有错误欢迎大家在评论区批评指正,谢谢大家。

本专栏的学习资料来源:

本专栏的学习资料主要来自韦东山老师的Android音频系统,需要完整资料的同学,可前往韦东山老师课程观看,支持正版

一、名词解释

stream type

app要播放声音, 要指定声音类型: stream type
在这里插入图片描述

strategy
将各类型的声音中具有相同行为的声音类型聚在一起分为一个类,叫做strategy。

相同行为:播放的设备(device)一样、优先级一样等
有那么多的类型, 来来来, 先看它属于哪一类(策略): 使用getStrategy()函数获知声音属于strategy,如下图,每一个红框就是一类(strategy)。
在这里插入图片描述

声卡:
声卡 (Sound Card)也叫音频卡(港台称之为声效卡),是计算机多媒体系统中最基本的组成部分,是实现声波/数字信号相互转换的一种硬件。

一个声卡包含多个device(喇叭、耳机还是蓝牙)

设备结点
用户空间和内核空间的通信节点

用户进程与内核下的硬件进行通信需要建立一个设备节点,设备节点使得用户可以与内核进行硬件的沟通,读写设备以及其他的操作。
在linux里面设备就像是普通文件一样的存在,访问一个设备就好像是访问一个文件一样。
主设备号代表着一类设备次设备号代表着同一类设备的不同个体
Linux声卡设备节点:下面每一行代表一个设备节点
在这里插入图片描述
一个设备结点包含多个device

device(硬件):

根据strategy确定要用什么设备播放: device, 喇叭、耳机还是蓝牙?
Android系统里使用hardware module来访问硬件, 比如声卡,声卡上有喇叭、耳机等等,称为device。
在这里插入图片描述
更详细的看哪些是device可看这篇文章:输出、输入设备

output(硬件):
配置,用于描述现在可以支持哪些device,以及该output的采样率、通道数等。

为了便于管理, 把一个设备上具有相同参数(采样率等)的一组device称为output。
*:这组device在同一硬件的不同端口。

profile
配置,用于描述output本可以支持哪些device,以及该output的采样率、通道数等。
output和profile异同:

output描述现在,profile描述本可以,如profile配置里output本可以支持耳机,但现在耳机没插,因此output中就没有耳机。

module:
是一个硬件操作库。

Android系统里使用hardware module(硬件操作库)来访问硬件(包括output、device), 比如声卡

module产生了三个问题?
1、Android系统会根据module的名字打开对于的.so文件,那么系统如何知道module名字?
2、一个module能支持哪些output?
3、一个output能支持哪些device,具体参数是什么?

为了这三个问题,Android系统提供了/audio_policy.conf
使用配置文件/system/etc/audio_policy.conf来描述上面的三个问题

playbackthread
PlaybackThread:回放线程基类,同由 ThreadBase 派生

根据device确定output,进而知道对应的playbackthread,把声音数据传给这个thread
对于录制还有,RecordThread:录制线程类,由 ThreadBase 派生

policy

一个stream如何最终选择到一个device,这些stream type如何互相影响(一个高优先级的声音会使得其他声音静音),等等等, 统称为policy (政策)

out flag
一个输出的flag标识符

比如对于某个专业APP, 它只从HDMI播放声音, 这时就可以指定out flag为AUDIO_OUTPUT_FLAG_DIRECT,这会导致最终的声音无需混音即直接输出到对应的device
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值