GSYVideoPlayer 是基于 IJKPlayer(兼容系统 MediaPlayer 与 EXOPlayer2 ),实现了多功能的视频播放器。
项目结构:
Player 播放内核层 :IjkMediaPlayer、ExoPlayr2、MediaPlayer(IPlayerManager)。
Manager 内核管理层 :GSYVideoManager(GSYVideoBaseManager <- GSYVideoViewBridge)。
Video 播放器控件层 :GSYTextureRenderVIew 到 GSYVideoPlayer 五层。
Render 渲染控件层 :TextureView、SurfaceView、GLSurfaceView(GSYRenderView <- IGSYRenderView)。
结构图:
管理层 GSVideoManager 继承 GSYVideoBaseManager ,通过 IPlayerManager 控制播放内核。
管理层 GSVideoManager 实现了 GSYVideoViewBridge ,和 UI 层交互(主要通过 UI 层的GSYVideoPlayer)。
UI 层 GSYTextureRenderView 通过 GSYRenderView ,内置 IGSYRenderView 实现类,和渲染层交互。
UI 层逐层继承实现各层逻辑,内部大部分方法为 protect 。