音频轨道(Audio track)
说到音频轨道,首先要说明的是日常情况下我们耳朵接收到的声音都是混音。比如你坐在工位上,有空调的声音、有同事说话的声音,有人员走动的声音,有敲击键盘的声音等等,这些声音都有独立的音源发出来,都有不同的音色、音调,它们一旦发出后,就沿着各自的传播路径(轨道)到达我们的耳朵,在经过我们大脑加工后形成混音被我们所感知,这些每一个独立可变的声音就是一个个音频轨道。在计算机领域,声音信号是使用特定格式的数据表示的,比如PCM数据,所以一个个音频轨道就是一段段PCM数据集,它们代表了一个个可以独立控制、具备不同声音特征、可并发播放声音信号。
音频轨道的应用广泛,通过独立控制每一个音频轨道,我们可以控制背景音添加和消除,是否添加旁白,K歌时候是否添加伴奏,制作各种立体声、合成交响音乐,在影师制作方面也可以通过控制风声、雨声、人声、马蹄声,加各种背景音乐使得观众身临其境,激发出来各种情绪等。
AudioTrack
AudioTrack是Android系统提供的用于播放PCM格式音频数据的工具类,它直接和音频硬件驱动交互,负责将从上层接收到的音频数据(PCM格式)从扬声器或者耳机输出;
AudioTrack能够提供精细的播放控制,比如设置播放速度、播放、暂停、音量等操作,可以认为它是一个只能播放PCM格式的音频播放器;
在当前流行的操作系统Android、苹果、windows、Linux等,所有的音频数据,不管是MP3、FLAC、WAV都会经过解码,最终转换成PCM格式,然后调用系统PCM播放器进行播放和控制,在Android系统上播放PCM的工具类是AudioTrack,在IOS上有AudioQueue和AVAudioEngine。但凡事皆有例外,一些具备硬件加速器的音频设备,是可以直接针对特定格式的音频资源进行解码播放。
AudioTrack之所以这样命名,它的设计初衷就是处理单个音频轨道,即一次播放一段独立的PCM数据流,比如我们需要把背景音、对白音等混合起来,那就需要同时处理多个音频轨道,也就是需要多个AudioTrack实例去播放和控制。
下图是Android系统上一个完整的流媒体视频播放流程,左侧是音频播放流程,了解这个有助于理解AudioTrack。
视频播放流程
网友评论