SVGA 是一种跨平台的开源动画格式,同时兼容 iOS、Android 和 Web。SVGA 除了使用简单,性能卓越,同时也让动画开发分工明确,各自专注各自的领域,大大减少动画交互的沟通成本,提升开发效率。
// 创建直播 JS-SDK 实例
var liveSdk = new PolyvLiveSdk({ ... });
// 监听打赏消息事件
liveSdk.on(PolyvLiveSdk.EVENTS.REWARD, function(event, data) {
var gimg = data.content.gimg;
console.log('打赏道具图片地址', gimg);
var svgaUrl = getSvgaUrl(gimg);
if (svgaUrl) {
console.log('svga 动画文件地址:', svgaUrl);
// TODO:播放 SVGA 动画
}
});
// 创建聊天室 JS-SDK 实例
var chatroom = new PolyvChatRoom({ ... });
var chat = chatroom.chat;
chat.on(chat.events.REWARD, function(event, data) {
var gimg = data.content.gimg;
console.log('打赏道具图片地址', gimg);
var svgaUrl = getSvgaUrl(gimg);
if (svgaUrl) {
console.log('svga 动画文件地址:', svgaUrl);
// TODO:播放 SVGA 动画
}
});
// 地址目录
var BASE_URL = 'https://s1.videocc.net/default-img/donate-svga';
// 目前可用的打赏动效
var svgas = {
coffee: 'coffee.svga',
like: 'like.svga',
handclap: 'handclap.svga',
'666': '666.svga',
star: 'star.svga',
diamond: 'diamond.svga',
car: 'car.svga',
rocket: 'rocket.svga',
bear: 'bear.svga',
crown: 'crown.svga',
cup: 'cup.svga',
microphone: 'microphone.svga',
villa: 'villa.svga',
};
/**
* 获取 SVGA 地址
* @param {string} gimg 打赏道具图片地址
*/
function getSvgaUrl(gimg) {
var a = document.createElement('a');
a.href = url;
var pathname = a.pathname.split('/');
var key = pathname[pathname.length - 1].split('.')[0];
const svgaFileName = svgas[key];
if (svgaFileName) {
return BASE_URL + svgas;
}
}