当前位置:   article > 正文

Exoplayer(3)-Exoplayer架构介绍_exoplayer3 状态变化

exoplayer3 状态变化

Exoplayer架构图

在这里插入图片描述

架构实现流程

  1. Exoplayer 在prepare() 后会开启一个定时轮询,执行下面的行为

    1.1 寻找已经设置给Exoplayer的播放源(MediaSource), 打开播放源,读取媒体流

      1.1.1. 外部创建MediaSource, 为MediaSource找到保存的地方 (封装后被在ExoPlayerImplInternal 类的 mediaSourceList 中)
    
      1.1.2 打开MediaSource, 开启线程读取媒体流
    
      1.1.3 媒体流被送到Extrator中解析出未解码器的音视频数据
    
      1.1.4 解析出的音视频数据被保存到内存缓存中,等待渲染器读取(SampleQueue)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  2. 如果没有打开渲染器Renderer(视频,音频,文字等渲染), 打开渲染器

    2.1 打开视频渲染器, 音频渲染器
    
    2.1.1 初始化和配置MediaCodec
    
    2.1.2 开启死循环, 从内存缓存中读取未解码音视频数据渲染 
    
    • 1
    • 2
    • 3
    • 4
    • 5
  3. 校验各种条件,设置播放状态

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/568934
推荐阅读
相关标签
  

闽ICP备14008679号