音频1 |
您所在的位置:网站首页 › 什么叫自动连接音频设备呢 › 音频1 |
接下来计划针对音频做一个较为详细的总结:
计划分成下面8章来详细展开,后面再根据实际情况做调整。 - 1.基础知识(硬件,音频相关概念) 2.ALSA/ASOC框架3.codec 驱动dapm 相关(kcontrol、widget、route),以及hal层设置通路4.android 音频框架( 重点在AudioFlinger 和 AudioPolicyService服务 )5.音频通路的选择(AudioTrack播放选择设备的过程,已经设备切换过程)6.播放 录音音频流的传输过程7.audio hal介绍8.一些常见问题解决思路以上内容基于tinyalsa展开,尽量剔除厂商的差异性。 音频基础知识 一.概念采集声音实际就是将模型信号转化成数字信号,类似ADC的原理,有着几个步骤:模拟信号->抽样->量化->编码->数字信号 涉及到几个关键的参数: 采样率:抽样环节的频率, 一秒采样多少次,采样频率必须至少是信号中最大频率分量频率的两倍,否则就不能从信号采样中恢复原始信号。android 一般使用44.1k 48k等。 位数(采样精度):量化环节用到的精度,采样的精度,即采集到一个数据有多少位可以保存,这个一般要根据codec 芯片支持哪个精度来配置。一般是16位或32位。 声道:采样多少个通道,android 底层支持单声道和双声道 一.硬件相关硬件相关 主要介绍 IIS接口 IIS( I2S ) 全称Integrated Interchip Sound,是飞利浦在1986年定义(1996年修订)的数字音频传输标准,用于数字音频数据在系统内器件之间传输,例如codec 芯片,数字麦克风,数字输入输出接口等。
时钟计算的例子: 假设声音数据有左右声道,每个声道占用32位数据位,左右两个声道一共占了64个数据位。如果 LRCK 44.1K 那SCLK 就是44.1K* 64 =2822.4k =2.822m LRCK 48K 那SCLK 就是48K* 64 =3072k =3.072mIIS通信总线有主从之分: 在总线上只能存在一个主设备,可有多个从设备。主设备提供时钟,不一定是数据的发送方,也可以是接受方或者其他协调两者的控制设备。 二.其他概念 传输延迟(latency):传输延迟表示一个周期的音频数据的传输时间。可能有些读者一脸懵逼,一个周期的音频数据,这又是啥?我们再引入周期(period)的概念:Linux ALSA 把数据缓冲区划分为若干个块,dma 每传输完一个块上的数据即发出一个硬件中断,cpu 收到中断信号后,再配置 dma 去传输下一个块上的数据;一个块即是一个周期,周期大小(periodSize)即是一个数据块的帧数。再回到传输延迟(latency),传输延迟等于周期大小除以采样率,即 latency = periodSize / sampleRate。 16LE上文描述的位数,一般会使用16LE ,这里的LE指的是Little Endian 小端存储 就是0x2345 在实际中是先存储 45 再存储23 蓝牙相关A2DP:是一种单向的高品质音频数据传输链路,通常用于播放立体声音乐; SCO: 则是一种双向的音频数据的传输链路,用于语音通话,音频的采样率较低,一般是8K、16K单声道的音频数据,所以如果用于播放音乐,体验会很差。 两者的主要区别是:A2DP只能播放,默认是打开的,而SCO既能录音也能播放,默认是关闭的。 android 声卡节点![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |