H5播放SVGA动画

本文介绍如何使用SVGA.Player库在Web页面中实现SVG动画的播放控制,包括暂停和停止动画的功能,并展示了完整的HTML代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

废话不多说,直接上代码
html

<!DOCTYPE HTML>
<html>
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <style>
        #box{
            margin: 0px;
            padding: 0px;
            border: 1px violet solid;
        }
        #ssss{
            width: 100vh;
            height: 100vh;
        }

        #demoCanvas{
            width: 300px;
            height: 300px;
            margin: 0 auto;
            border: 1px salmon solid;
        }

    </style>
</head>

<body id="box">
<div id="ssss" >
<button onclick="pauseAnimation()">暂停在当前帧</button>
<button onclick="stopAnimation()">停止播放动画</button>
<div id="demoCanvas" ></div>
</div>
<script src="./svga.min.js"></script>
<script>

var player = new SVGA.Player('#demoCanvas');
player.loops=1;
player.clearsAfterStop=false;

var parser = new SVGA.Parser('#demoCanvas'); // 如果你需要支持 IE6+,那么必须把同样的选择器传给 Parser。


parser.load('http://sl.file.diaodiaosocial.com/1595325777179.svga', function(videoItem) {
    player.setVideoItem(videoItem);
    player.startAnimation();
    player.onFinished(function(){
        console.log("11111")
        alert("动画停止了!!!哈哈哈@@@")
    });
})




//暂停在当前帧
function pauseAnimation(){
    player.pauseAnimation();
}
//停止播放动画,如果 clearsAfterStop === true,将会清空画布
function stopAnimation(){
    player.stopAnimation();
}



</script>
</body>
</html>

这里引用的jsSVGAPlayer-Web
在这里插入图片描述

### 实现SVGA动画播放 为了在Android平台实现SVGA格式的动画播放,需先集成`SVGAPlayer-Android`库到项目中。这可以通过Gradle完成,在项目的根目录下的`build.gradle`文件中的`allprojects.repositories`部分添加JitPack仓库[^3]。 ```gradle allprojects { repositories { ... maven { url 'https://jitpack.io' } } } ``` 随后,在模块级别的`build.gradle`文件里加入如下依赖项来引入`SVGAPlayer-Android`: ```gradle dependencies { implementation 'com.github.svga:SVGAPlayer-Android:2.0.0' } ``` 接着创建用于显示动画的布局文件,定义一个容器视图用来承载SVGA播放器实例。通常情况下会使用`FrameLayout`作为父级容器并放置`SVGAPLAYER`组件于其中[^1]。 ```xml <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="wrap_content"> </FrameLayout> ``` 之后可以在Activity或Fragment内初始化SVGA播放器对象,并加载本地资源或者网络路径指向的目标svga文件进行解析与渲染操作。下面给出了一段简单的Java代码片段展示如何启动一个基本的SVGA动画回放过程[^2]。 ```java import com.opensource.svgaplayer.SVGADynamicEntity; import com.opensource.svgaplayer.SVGAImageView; import com.opensource.svgaplayer.SVGALoaderCallback; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FrameLayout container = findViewById(R.id.container); final SVGAImageView svgaView = new SVGAImageView(this); container.addView(svgaView); String pathToSvgaFile = "file:///android_asset/sample.svga"; // 或者 http(s) URL SVGAParser parser = new SVGAParser(this); parser.decodeFromPath(pathToSvgaFile, null, new SVGAParser.ParseCompletion() { public void onComplete(SVGAVideoEntity videoItem, SVGAGifEntity gifItem) { if (videoItem != null){ svgaView.setVideoItem(videoItem); svgaView.startAnimation(); } } public void onError() {} }); } } ``` 上述代码展示了通过指定资产文件夹内的`.svga`文件路径或是远程服务器上的链接地址来读取动画数据的方式;一旦成功获取到了有效的视频实体(`SVGAVideoEntity`)即刻调用`startAnimation()`方法触发实际的画面更新动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员劝退师-TAO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值