首页
首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
ExoPlayer
山雨楼
创建于2023-09-25
订阅专栏
Android Meida3 库 ExoPlayer 深入解析
等 44 人订阅
共20篇文章
创建于2023-09-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
ExoPlayer架构详解与源码分析(17)——TrackSelector
在播放期间,播放器与TrackSelector之间会发生以下交互: * 创建播放器时,它将通过调用 **init** 来初始化 TrackSelector。 * 当播放器需要进行轨道选择时,
ExoPlayer架构详解与源码分析(16)——LoadControl
本篇来了解下四大组件中的LoadControl,这个组件和其他几个比起来算是比较小巧的了,简略过下,LoadControl 播放前媒体数据加载控制
ExoPlayer架构详解与源码分析(15)——Renderer
如果你已经看完理解了前面MediaSource的内容,我相信你已经知道数据是如何获取并解析好放入到缓存了,我们先跳过中间那些控制管理环节,这些数据最终流入的方向就是本篇要讲的Renderer了。
ExoPlayer架构详解与源码分析(14)——ProgressiveMediaPeriod
中途间隔了一段时间,之前写了那么多铺垫,终于看到ProgressiveMediaPeriod实现部分了
ExoPlayer架构详解与源码分析(13)——TeeDataSource和CacheDataSource
铺垫了那么多的基础,本篇终于可以来分析下CacheDataSource,上篇重点讲完了图的Cache的下半部分,而将Cache和CacheDataSource关联起来的是一个叫TeeDataSourc
ExoPlayer架构详解与源码分析(12)——Cache
资源指的是一个完整的媒体文件(如一个MP4,ts文件),每个资源都有唯一的key,一般使用资源的URI作为Key,有时候同一个资源会有不同的URI(如URI加上了失效时间)这种情
ExoPlayer架构详解与源码分析(11)——DataSource
之前的文章已经讲解完架里用于解析数据的左半部分,而这些用于解析的数据就是从右半部分的DataSource里获取的。还是拿火箭来类比,MediaSource是火箭的燃料系统,那么左半边可以理解为燃油泵控
ExoPlayer架构详解与源码分析(10)——H264Reader
TsExtractor解封完TS数据后,会根据payload中的视频类型使用指定Reader继续解析,如果payload是H.264格式,就会使用H264Reader来继续解析PES payload
ExoPlayer架构详解与源码分析(9)——TsExtractor
上篇说完了Extractor的整体结构,本篇将详细讲解Extractor的实现,主要通过TsExtractor这个实现类来讲解,顾名思义TsExtractor是用于TS容器格式的解析器。
ExoPlayer架构详解与源码分析(8)——Loader
ProgressiveMediaPeriod的左半部分SampleQueue已经在上篇讲完,相对今天说的这部分还算简单,ProgressiveMediaPeriod右半部分主要为Loader
ExoPlayer架构详解与源码分析(7)——SampleQueue
ProgressiveMediaPeriod中的SampleQueue部分相对其他部分,结构相对完整独立,没有像加载媒体那部分拆分出很多其他的概念,所以优先了解下SampleQueue。本篇主要解答媒
ExoPlayer架构详解与源码分析(6)——MediaPeriod
上篇看完了MediaSource,发现其中正在发挥作用的是其中的MediaPeriod,如果MediaSource是燃料系统的外壳,那么MediaPeriod就是其外壳下的核心,媒体数据的的加载获取甚
ExoPlayer架构详解与源码分析(5)——MediaSource
上篇说完整体架构,这里开始分析其中的各个组件,先从MediaSource看起,继续拿运载火箭做对比,MediaSource在整个运载火箭中的角色就类似于燃料系统,确保火箭顺利升空,燃料系统是其中重要的
ExoPlayer架构详解与源码分析(4)——整体架构
要直接实现Player接口需要非常复杂的代码逻辑,都写在一个类里肯定不现实,需要通过更多层次的扩展简化来实现,当然ExoPlayer就是这么做的,本篇来讲讲的如何通过BasePlayer来简化设计以及
ExoPlayer架构详解与源码分析(3)——Timeline
如果播放器就是一只火箭,那么火箭发射就必须要有一个基于时序的发射计划,火箭在运行过程中通过获取当前时间点的发射计划就会知道当前的时序状态,以及决定下一步该干什么,如需要在什么时候点火、发动机什么时候停
ExoPlayer架构详解与源码分析(2)——Player
如果让你去开发一款播放器,第一步当然想到的就是设计。使用面向对象的思路,去确定ExoPlayer应该具有哪些功能,对外暴露哪些操
ExoPlayer架构详解与源码分析(1)——前言
前言 之前通过几篇源码阅读横向的分析了ExoPlayer HLS相关的源码,那时候ExoPlayer还是独立的库,现在ExoPlayer 现在已经正式入编,合并到了Androidx 的media3中,
ExoPlayer 源码阅读小记--音视频数据流分析
基于ExoPlayer 2.17.1源码分析,分析下音视频数据是如何到播放器播放的: 首先话接上上篇ExoPlayer 源码阅读小记--HLS播放带缓存加载M38U文件过程最后一步 MediaChun
ExoPlayer 源码阅读小记--缓存模块及获取HLS已缓存大小
基于ExoPlayer 2.17.1源码分析,带着问题看代码,主要解决以下几点问题: 缓存是如何存取管理的 如何获取HLS的已缓存大小 首先回顾下上一篇文章《ExoPlayer 源码阅读小记--HLS
ExoPlayer 源码阅读小记--HLS播放带缓存加载M3U8文件过程
基于ExoPlayer 2.17.1源码分析,基本是一边看一边写的流水账,记录下防止以后忘了: 第一步createMediaSource创建HlsMediaSource对象时同时会实例化出HlsPla