音视频开发|基础概念辨析|AudioSource和AudioSink
音视频开发是一个充满机遇和挑战的领域,对于想要走的更远的同学,对基础概念进行透彻理解是重中之重;今天我们就来聊一聊音频开发中两个基础概念:AudioSource和 AudioSink。
人往高出走,水往低处流~
飞流直下三千尺,疑是银河落九天~
白日依山尽,黄河入海流~
由上可知,河流的发源地一般是高山或其他地势较高的地方,最后流入大海或其他低洼地;音频流跟水流一样,它也有源头-Source,尽头-Sink(洼地)。
什么是 AudioSource(音频源)?
AudioSource——A Source that create the audio data,顾名思义,就是音频数据的“源头”,它是系统获取音频数据的地方,举几个例子,方便我们理解音源。
在手机等智能设备中:
- 麦克风:当我们在手机上录音或者视频通话时,麦克风会把声音转音视数据,所以麦克风就是一个音频源;
- 音频文件:当我们播放一首歌或一个播客时,音频文件中的数据也是音频源。
- 网络流:像在视频网站或者直播平台中,音频流通过网络传输,也是音频源。
在现实中
- 人声、鸟声、风声、雨声,声声入耳,这些能产生声音的事物都可以称为声源/音源,耳朵则是接收器。
什么是 AudioSink?
AudioSink——A sink that consumes audio data,与 AudioSource 相对应,AudioSink 是音频数据的“终点、尽头”或“接收器”,它决定了音频最终会在哪里输出,比如扬声器、耳机等设备。
当你听一首音乐时,手机从文件或网络获取音频数据(AudioSource),最后音频数据到AudioSink,它会控制音频流通过扬声器或耳机播放出来。
无论音频数据来自哪里,它最终要被用户听到,都是通过AudioSink(音频末端处理器)来实现的,AudioSink 是负责接收并播放音频数据的设备或组件。
在 Android 开发中AudioTrack
类就是一个AudioSink这个概念的具体实现类,它负责将音频数据发送到硬件进行播放。
小结
如果把整个音频处理过程看作一个流水线, AudioSource 是输入音频原料的地方,AudioSink 是输出加工后产品(声音)的区域。理解这两个概念的配合关系,在很多场景下对于音视频开发非常重要,例如:
- 录制音频:需要选择合适的音频源(如麦克风);
- 播放音频:需要合理配置音频输出(如扬声器、耳机);
- 流媒体:在开发流媒体应用时,知道如何从网络获取音频流并通过合适的设备输出;
音频开发就像搭建一座桥梁,AudioSource 是这个桥的起点,AudioSink 是这个桥的终点,了解清楚一个音频处理系统的起点和终点,我们才能够进行第一性原理思维,不断推陈出新,拥抱未来。
共有 0 条评论