SVGAPlayer-Web-Lite
这是一个 SVGA 在移动端 Web 上的播放器,它的目标是 更轻量、更高效,但它也放弃了对旧版本浏览器的兼容性支持。
依赖 Promise
若出现 Promise is not a constructor
等问题,外链 polyfill 或配置 babel 进行兼容
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script>
实现
- 体积 = 55kb (gzip = 18kb)
- 兼容 Android 4.4+ / iOS 9+
- 更好的异步操作
- 多线程 (WebWorker) 解析文件数据
- OffscreenCanvas
实验性
- 渲染引擎模拟运行在 WebWorker
- 使用 WebAssembly 替代 WebWorker
- GPU 加速运算
差异
- 不支持声音播放
安装
NPM
yarn add svga.lite
# 或者
npm i svga.lite
CDN
<script src="https://cdn.jsdelivr.net/npm/svga.lite/svga.lite.min.js"></script>
使用
简单使用
<canvas id="canvas"></canvas>
import {
Downloader, Parser, Player } from 'svga.lite'
const downloader = new Downloader()
// 默认调用 WebWorker 线程解析
// 可配置 new Parser({ disableWorker: true }) 禁止
const parser = new Parser()
// #canvas 是 HTMLCanvasElement
const player = new Player('#canvas')
;(async () => {
const fileData = await downloader.get('./xxx.svga')
const svgaData = await parser.do(fileData)
player.set({
loop: 1 })
await player.mount(svgaData)
player
// 开始动画事件回调
.$on('start', () => console.log('event start'))
// 暂停动画事件回调
.