当提起音视频开发,很多人潜意识认为这是一项很有难度和挑战的工作,需要投入较多时间才能入门~~
这句话说对了一半!!音视频目前是入门简单,成神难!
随着音视频开源技术发展,流媒体传输、音视频处理和播放、编解码、实时通信等技术难点已经被封装起来,成为一个个简单易用工具库,只需要简单了解一些音视频的知识和开源库API,便可以进行音视频应用开发。
在快速进入开发工作后,再结合实际业务和代码深入理解音视频知识,事半功倍,未来可期!!
先快速入门开发,再学习思考!!
音视频客户端开发,最简单的流程一般如下:
-
通过网络API获取音视频资源列表,列表item会包含音视频资源地址或者ID(提供ID的一般是资源方怕资源地址泄露,会提供专门的播放器,播放器会根据ID找到这个地址);
-
引入一个播放器库,初始化播放器,如果是视频播放还需要先定义好承载视频画面的View(SurfaceView等),然后使用API将该View和播放器关联起来;
-
将第一步获取的资源地址添加到播放器实例中,就可以开始播放了;
-
定制各种view,将view的各种事件和播放器控制API以及数据源关联起来,就可以实现暂停、播放、上下首,同时监听播放器回调的各种事件(比如进度更新事件,播放错误事件)来完成页面的UI更新。
做完这些,视频播放起来了,那基本的信心就有了!
但遇到疑难杂症,如何分析,如何界定属于哪个模块、哪一方的问题,就需要继续学习音视频的播放流程和技术架构。
学完这些,当遇到问题,就能快速定位出是谁的问题,去哪里找答案,推动谁去解决;也会知道当前方案的技术边界在哪里,什么时候该仔细研究,什么时候该从产品或者体验上规避,这时候的你拥有了超越你技术范围的解决问题能力。
视频播放流程可以看《视频显示原理整体介绍》,音频播放流程差不多,待补充
从客户端视角来看音视频架构如下:
音视频架构好了,暂时这样,有问题,评论区交流讨论~
网友评论