Audio Engine是一种数字信号处理器(DSP),用于将音频信号从一种形式转换为另一种形式。它通常被用于音频系统中,以处理音频信号,例如将模拟信号转换为数字信号,进行音频压缩和解压缩,以及音频特效处理等。
Audio Engine可以集成在播放器或音频设备中,也可以作为独立的处理器或芯片使用。它能够提供高质量的音频输出,并支持多种音频格式和编解码器。
在播放器中,Audio Engine负责将解码后的音频信号转换为声音输出,并与控制器和视频引擎协同工作,确保音频和视频的同步播放。
AudioEngine是一个音频引擎,我们需要这样的东西,来驱动音频数据的各种处理,比如AudioEngine与AudioPlayer(平台相关的播放器)互动,驱动Extractor提取数据包,再交给Decoder解码到PCM数据,再返回给AudioPlayer。AudioEngine还可以加入音效处理,把解码后的PCM进行运算。AudioEngine还可以跟音频录制互动,一边播放伴奏一边录制人声。总之,很多常见的音频处理逻辑都可以写在AudioEngine当中,而且这些逻辑跟具体的业务并不相关,或不太相关。
至于Extractor与Decoder,之前也有介绍过:
一般来说,播放器包括以下几个主要部分:
- 解码器(Decoder):负责将音频或视频文件解码成可以被播放器理解的信号。
- 音频引擎(Audio Engine):负责将解码后的音频信号转换为声音输出。
- 视频引擎(Video Engine):负责将解码后的视频信号转换为图像输出。
- 控制器(Controller):负责管理播放的流程、顺序和时间等。
- ……
除了AudioEngine,一般我们还需要一个触发层,来对接业务层,提供接口让业务层触发播放逻辑,这个就是Controller,或者叫playercontroller。这一层要为业务服务,写一些偏业务的代码,并提供服务接口。
总得来说,可以得到这样的一个图,这个图反映了模块的关系,同时列举了模块的关键行为:
有这些模块概念,你想搭建自己的播放器框架也不是什么难事,而且你还可以参考一些开源项目的设计,比如安卓的播放器、ijkplayer等。
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。