Audio: 音频系统
Posted dongshenscut
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Audio: 音频系统相关的知识,希望对你有一定的参考价值。
1. Codec – (Coder-Decoder)
英文缩写:Codec, 支持视频和音频压缩(CO)与解压缩( DEC ) 的编解码器或软件。CODEC技术能有效减少数字存储占用的空间,在计算机系统中,使用硬件完成CODEC可以节省CPU的资源,提高系统的运行效率。
Codec对AD变换后的音视频数字信号的传输进行编码、压缩,在接收端对信号解码。一般用在视频会议、流媒体、视频应用等场合。
CODEC就是多媒体数字信号编解码器,主要负责数字->模拟信号转换(DAC)和模拟->数字信号的转换(ADC)。不管是音频加速器好,还是I/O控制器好,他们输入输出的都是纯数字信号,我们要使用声卡上的Line Out插孔输出信号的话,信号就必须经过声卡上的CODEC的转换处理。可以说,声卡模拟输入输出的品质和CODEC的转换品质有着重大的关系,音频加速器或I/O控制器决定了声卡内部数字信号的质量,而CODEC则决定了模拟输入输出的好坏。
2. 物理结构
音频编解码器Codec负责处理音频信息,包括ADC,DAC,Mixer,DSP,输入输出以及音量控制等所有与音频相关的功能。
Codec与处理器之间通过I2C总线和数字音频接口DAI进行通信。
I2C总线 - 实现对Codec寄存器数据的读写。
DAI - 实现音频数据在CPU和Codec间的通信。
以Codec作为研究对象,它的输入有Mic(Microphone),PhoneIn电话信号等,输出有耳机HP(HeadPhone),扬声器Speaker和PhoneOut电话信号。另外需要注意在Codec与CPU端间也有音频数字信号的输入输出。
3. 应用情景
3.1. 播放音乐
3.2. 录音
3.3. 打电话
3.4. 接电话
3.5. 通过蓝牙打电话
3.6. 通过蓝牙接电话
4. android音频系统架构
Android的音频系统拥有一个比较标准和健全的架构,从上层应用,java framework服务AudioMananger,本地服务AudioFlinger,抽象层AlsaHAL,本地库,再调用external的Alsa-lib外部支持库,最后到底层驱动的codec,可谓"五脏俱全"。
以上是关于Audio: 音频系统的主要内容,如果未能解决你的问题,请参考以下文章
Android 9 Audio系统笔记:音频路由实现——从AudioTrack到audiohal