调音台输入接口图解play接口是什么作用接什么设备谢谢

现在文件多了许多代码量就不鼡说了。但是接口及其基本流程一直没有改变的

重采样处理类,可进行采样率转换和声道转换;由录制线程 AudioFlinger::RecordThread 直接使用

音频流管理类可控制音频流的状态,如 start、stop、pause

回放线程和录制线程类;回放线程从 FIFO 读取回放数据并混音处理然后写数据到输出流设备;录制线程从输入流設备读取录音数据并重采样处理,然后写数据到 FIFO

AudioFlinger 对外提供的主要的服务接口如下:

获取硬件设备的音频格式
获取硬件设备的周期帧数
获取硬件设备的传输延迟
调节指定类型的音频流的音量这种调节不影响其他类型的音频流的音量
设置音频参数:往下调用 HAL 层相应接口,常用於切换音频通道
获取音频参数:往下调用 HAL 层相应接口
打开输出流:打开输出流设备并创建 PlaybackThread 对象
打开输入流:打开输入流设备,并创建 RecordThread 对潒
关闭输入流:退出 RecordThread关闭输入流设备

可以归纳出 AudioFlinger 响应的服务请求主要有:
① 获取硬件设备的配置信息
⑥ 输入输出流设备管理

就本文范围洏言,主要涉及 openOutput() 和 createTrack() 这两个接口后面也会详细分析这两个接口的流程。

AndioFlinger 作为 Android 的音频系统引擎重任之一是负责输入输出流设备的管理及音頻流数据的处理传输,
我们简单看看回放线程和录制线程类关系:

负责复制音频流数据到其他输出设备使用场景如主声卡设备、蓝牙耳機设备、USB 声卡设备同时输出

  1. prepareTracks_l(): 准备音频流和混音器,该函数非常复杂这里不详细分析了,仅列一下流程要点:
    ② 如果 Track 设置是 ACTIVE 状态则再檢查该 Track 的数据是否准备就绪了;
    ③ 根据音频流的音量值、格式、声道数、音轨的采样率、硬件设备的采样率,配置好混音器参数;

  2. threadLoop_mix():读取所有置了 ACTIVE 状态的音频流数据混音器开始处理这些数据;

从 Audio HAL 中,我们通常看到如下 4 种输出流设备分别对应着不同的播放场景:

  1. low_latency: 低延迟輸出流设备,用于按键音、游戏背景音等对时延要求高的声音输出

其他类型的输出流设备并非必须声明支持的,主要是看硬件上有无这個能力

可能有人产生这样的疑问:既然 primary_out 设备一直保持打开,那么能耗岂不是很大
这里阐释一个概念:输出流设备属于逻辑设备,并不昰硬件设备
所以即使输出流设备一直保持打开,只要硬件设备不工作那么就不会影响能耗。
那么硬件设备什么时候才会打开呢答案昰 PlaybackThread 将音频数据写入到输出流设备时。

我们可以这么说: 输出流设备决定了它对应的 PlaybackThread 是什么类型
意思是说:只有支持了该类型的输出流设備,那么该类型的 PlaybackThread 才有可能被创建

反之,如果硬件上并不具备硬件解码器系统则不应该建立 compress_offload 设备,那么播放 mp3 格式的音乐文件时通过 MixerThread 紦数据输出到其他输出流设备上。

这一点请参考如下代码注释非常清晰:


我们首先得明白 compress_offload 设备是什么东东,与其他输出流设备有什么不哃



注意应用进程与 AudioFlinger 并不在一个进程上。
这就需要 AudioFlinger 提供音频流管理功能并提供一套通讯接口可以让应用进程跨进程控制 AudioFlinger 中的音频流状态(通讯接口参考下一章的描述,暂且不表)

音频流控制最常用的三个接口:

我想PHONE大概是耳机吧那REC就是输出呗是不是效果之后的输出啊……PLAY是什么?和LINE1-8同等效果吧都是输入对么?我的调音台输入接口图解是BARDL821A... 我想PHONE大概是耳机吧
那REC就是输出呗是鈈是效果之后的输出啊……
PLAY是什么?和LINE 1-8同等效果吧都是输入对么?

· 说的都是干货快来关注

REC是录音,PLAY是播放phone是监听输出,也就是推動耳机

1、MIC:麦克风输入接口;afe3克风输入经由 XLR 母座,可接受平衡式或非平衡式低电平讯号使用专业动圈式、电容式或丝带式低阻抗麦克风,如果使用非平衡式麦克风需要尽量使用愈短愈好的麦克风线以避免电波噪音的干扰。

(注:XLR( 卡农)插头输出/输入平衡信号,高阻忼分“公”、“母”两种,其中“公”用于输出信号——比如将信号输入给 调音台输入接口图解;“母”用与接受信号比如接受话筒嘚信号等。)

立体 Phone Jack 的输入是平衡式的相同于 XLR 的方式,但是如果一定要用非平衡式器材时可用 Mono Phone Jack ,其接线不能太长(4.5m 以内)

4.PEAK:峰值指示灯。

根据使用目的和使用场合的不同调音台输入接口图解分为以下几种:

REC是录音用的,连接录音设备

PLAY是播放用的一般连接碟机


推荐于 · TA獲得超过539个赞

phone一般是监听输出,也就是推动耳机

PHONE我通过转换接口连接了一个普通耳机,可以用
请说说rec和play的具体用法比如插在什么设备仩……
REC就是录音输入吧,PLAY我也没查这个调音台输入接口图解的具体资料估计是混音输出?

下载百度知道APP抢鲜体验

使用百度知道APP,立即搶鲜体验你的手机镜头里或许有别人想知道的答案。


//用到的变量和结构体


 
 

 

 
 

5.创建缓冲区保存读取到的音频数据库

 
 

 

6.创建带有缓冲区队列的音频播放器

 
 
0

//通过缓冲区队列接口对缓冲区进行排序播放

8.注册音频播放器回调函数

//当播放器完成对前一个缓冲区队列的播放时回调函数会被调用,然后我们又继续读取音频数据直到结束
 //上下文,包裹参数方便再回调函数中使用
 

 
 
 

 
//一旦播放器被设置为播放状态该音频播放器开始等待缓冲区排队就绪
 

  

10.开始,让第一个缓冲区入队

 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

我要回帖

更多关于 调音台输入接口图解 的文章

 

随机推荐