西瓜播放器 HTML5 video video.js 播放器 HTML5播放器 mp4 hls hls.js flv flv.js dash dash.js 无缝切换

结构设计

架构图

代码目录

整体目录结构如下

├── src       # 源码
│   ├── lang     # 多语言工具函数以及各个语言包
│   ├── plugin   # 插件工具类,包含两个插件基础类BasePlugin和Plugin,以及插件注册管理工具pluginsManager, hook装饰器hooksDescriptor
│   ├── plugins  # 所有内置插件
│   ├── presets  # 所有内置preset
│   ├── style  # 基础样式
│   └── utils  # 基础工具包,包含Util/Sniffer/Logger等工具类
│   ├── defaultConfig.js  # 播放器默认配置列表
│   ├── player.js  # 播放器对象
│   ├── proxy.js  # video代理对象
│   ├── stateClassMap.js   # 和状态相关的css类名枚举列表
│   ├── events.js   # 事件枚举列表
│   ├── index.js   # es/lib打包入口
│   ├── index_umd.js  # umd打包入口
└── types  # d.ts文件夹
├── dist      # umd打包文件
├── es        # amd打包路径,保留import引用,支持treeshaking
├── lib       # commonjs打包路径
├── scripts   # 打包工具js,包括css构建、d.ts复制等