FFmpeg安卓流媒体播放项目01:项目概述

项目效果展示(运行环境雷电模拟器)

BoPlayer.gif

项目类图

这是整个项目的类图

BoPlayer类图.png

模块介绍

  • IDemux : 解封装模块
  • IDecode : 解码模块
  • IReasample : 重采样模块
  • IVideoView : 视频渲染显示模块
  • IAudioPlay : 音频播放模块

项目中用到的设计模式

  • Adapter适配器模式 : 封装FFmpeg, OpenGLES, OpenGLES

  • 解耦性 : 目标和适配者解耦

  • 开闭原则 : ( 扩展、修改 ) Target代码和客户调用代码不
    用修改,不同的适配者添加适配器

  • 适配器模式示意图


    适配器模式.png
  • Adaptee适配者可能是第三方的模块或控件等

  • 项目实际使用的适配器模式示意图, IDemux为Target, FFDemux为适配器, FFmpeg为适配者


    BoPlayer适配器模式.png
  • Builder构建者模式:构建播放器对象


    建造者模式.png
  • Observer观察者模式:模块间通信


    观察者模式.png
  • Proxy代理模式:管理播放器创建和线程安全


    Proxy代理模式.png
  • Facade外观(门面)模式:播放器管理解封装、解码、重采样、显示、音频播放


    门面模式.png
  • Singleton单例模式 : 唯一的构建者对象

  • 生产者消费者模式:解封模块生产数据包,解码模块消费解码

播放媒体文件的顺序图

播放媒体文件顺序图.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 能想起来的是,回去那间屋子后停电了,好像在整理画,然后像是在一个小巷子,有个小姑娘回来看到我,我以为她会害怕我,但...
    高柯阅读 936评论 0 0
  • 大四,正在考研的时刻,可是每天复习的效率太低,看着别人都几轮复习了,自己还停留在一轮,着急,可是也没用。昨天在自习...
    大宁46阅读 1,904评论 0 1
  • #最近一直在看了《知行合一:王阳明大传》,又听了和君一老师关于王阳明的讲座视频,题目叫做《从“没头脑“到“致良知”...
    一叶知秋zhzh阅读 1,748评论 0 0
  • 想做一个柔软的人, 于是拉筋,下腰 直到身体可像蛇一样盘恒 想有健强的体魄 于是冬天下河游泳 直到所有的鱼都冬眠 ...
    琴键上跳舞的米老鼠阅读 2,047评论 1 4