PAG 4.1 正式发布:新增支持微信小程序

PAG 4.1 版本新增支持微信小程序,新增支持多个常用 AE 特性,如图层样式-渐变叠加、蒙版-羽化和不透明度、 亮度轨道遮罩/亮度轨道反转遮罩等。经过 2 个多月 6 个版本的迭代,PAG 4.1 版本已经趋于稳定,目前广泛应用于 QQ、小红书等头部 APP,现正式发布,欢迎大家接入使用。

4.1 版本主要修改内容

平台支持

新增支持微信小程序,目前 PAG SDK 已完成覆盖 iOS、Android、macOS、Windows、Linux、Web 和微信小程序等常用平台。

AE 特性新增支持

· 图层样式-渐变叠加

· 蒙版-羽化和不透明度

· 亮度轨道遮罩/亮度轨道反转遮罩

· 文本路径选项:路径、反转路径、垂直于路径、强制对齐、首字边距、末字边距

API 接口更新

· PAGText 增加支持 leading 和 tracking 修改

· PAGView 增加 makeSnapshot 接口,支持在 PAGView 层面获取单帧渲染数据

制品库变更

· 从 4.1 版本开始,版本号位数由之前的 4 位修改为 3 位

· iOS 端移除 avmv7 架构支持

问题修复

· 修复文本渲染模糊问题

· 修复 Android 平台外部字体注册获取失败 crash 问题

· 修复 Android 平台 ManagerFragment 获取失败引起的 crash 问题

· 修复 Android 平台部分特效场景使用 crash 问题

· 修复内存申请失败引起的 pag 文件解码 crash 问题

· 修复 Android 平台 glBufferData 使用过程中的 OOM 问题

· 修复 Web 端异步任务时 getLayerType 崩溃的问题

· 修复 Web 端多个视图使用同一个 Canvas 时销毁视图崩溃的问题

· 修复 Web 端 BMP 预合成大于 4K 分辨率时无法播放的问题

· 修复 Web 端视频解码器静态区间暂停错误的问题

· 修复 Web 端页面不可见时视频解码器播放错误

4.1 版本部分功能解读

微信小程序版本

得益于微信小程序 v2.13.0 版本开始支持类似于 Web 标准 WebAssembly 的 WXWebAssembly,在 PAG 支持 Web 平台之后,经过一段时间的努力,基于 WXWebAssembly 我们实现了 PAG 的第一个小程序版本。渲染实现框架同样基于 PAG 的 C++ 层代码,API 接口和效果与其它平台保持一致。和 Web 平台一样,我们同样需要最大化使用平台端能力来优化包体,但小程序平台 API 的差异让我们产生了不同的设计方案。

例如:

(1)Web 平台我们通过 VideoElement 实现了硬件加速解码视频的能力,但小程序平台有着更方便的 API VideoDecoder,通过 VideoDecoder 我们能准确地拿到每一帧的数据,在 VideoDecoder 之上我们封装了 VideoReader 的工具类,进行预解码缓冲,确保 BMP 预合成流畅播放。

(2)小程序平台 WebGL 存在无法直接上传其它 Canvas 纹理的情况,在绘制文字和 mask 的时候,需要通过 getImageData 获取纹理数据再上传到 WebGL,从而导致性能上有所损耗,表现不如 Web 平台。

这是小程序的第一个版本,在目前的规划中,小程序版本未来将实现基于 Worker + WebAssembly 优化多 PAG 同屏播放等优化功能,预计这些优化完成后性能是可以优于 Web 移动端平台的。

部分 AE 新增特性展示

蒙版-羽化

图层样式-渐变叠加

亮度遮罩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值