ExoPlayer架构详解与源码分析(1)——前言
最佳答案 问答题库968位专家为你答疑解惑
目录
- 前言
- 为什么选择ExoPlayer
- 学习计划
前言
之前通过几篇源码阅读横向的分析了ExoPlayer HLS相关的源码,那时候ExoPlayer还是独立的库,现在ExoPlayer 现在已经正式入编,合并到了Androidx 的media3中,而且该项目还在持续更新完善中,可见官方对其还是比较重视的。后面希望通过一些列文章基于media3 1.1.0版本源码(GitHub)纵向分析下ExoPlayer。
为什么选择ExoPlayer
Android媒体播放器那么多,为什么选择分析学习ExoPlayer呢,不是因为它性能有多好,其他C/C++写的媒体播放器性能高的大有人在,而恰恰因为实现的语言才选择ExoPlayer,ExoPlayer可以说是纯Java实现的,在语言性能先天劣势的情况下如何实现高性能的播放,这才是其中值得学习的地方。另外也得益于Java代码的实现,ExoPlayer达到高度的可定制化,可以说媒体从加载到解析播放整个过程,几乎每一个细节处理都可以实现自定义。对于Android开发来说这无异于提供了巨大的方便,无论是自定义功能实现、bug定位处理、性能优化,都在Java层。而要最大发挥ExoPlayer的这些优势,首先你得了解它是如何运作的。ExoPlayer中涉及到很多的设计思路和架构思想。无论从技术优势和学习的角度去考虑,ExoPlayer 都是值得去好好学习和研究的。
学习计划
ExoPlayer项目结构还是比较庞大的,包含了主工程和相应的扩展库,这里我们主要关注主工程的源码,另外播放界面相关的代码不在讨论范围内。主要关注播放器的内部实现,大致分为以下几步来分析学习:
- 首先会从全局看下Exo的整体设计目标和架构,还有些全局的概念介绍。
- 接着会分别单独分析Exo的4大组件MediaSource、Renderers、TrackSelector、LoadControl。
- 还会了解4大组件的组成和运作及其相关类,其中MediaSource将是重点对象。
- 最后通过将所有的组件联合起来,了解播放器是如何协调这些组件完成视频播放的。
版权声明 ©
本文为CSDN作者山雨楼原创文章
转载请注明出处
原创不易,觉得有用的话,收藏转发点赞支持
99%的人还看了
猜你感兴趣
版权申明
本文"ExoPlayer架构详解与源码分析(1)——前言":http://eshow365.cn/6-13818-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: C# string stringbuilder区别
- 下一篇: 【C】指针进阶(上)