使用客户端 SDK
阅读时间:3分钟更新于 2025-08-22 12:43
- Native Runtime 源码:https://github.com/galacean/effects-native
- Native Runtime Demo:https://github.com/galacean/effects-native-examples
获取依赖
Android:
implementation 'io.github.galacean:effects:0.0.1.202311221223'iOS:
pod 'GalaceanEffects'开始使用
最低系统版本:
- Android 6.0 及以上
- iOS 11 及以上
线程模型:
- 所有方法应在 UI 线程调用。
- 所有回调都在 UI 线程。
- iOS 回调中应避免强引用
1. 创建 Player
Android:
GEPlayer.GEPlayerParams params = new GEPlayer.GEPlayerParams();
params.url = "https://xxx"; // 或包内文件: "assets://yourFilePath"
player = new GEPlayer(context, params);iOS:
GEPlayerParams *params = [[GEPlayerParams alloc] init];
params.url = @"https://xxx"; // 或包内文件: "assets://yourFilePath"
player = [[GEPlayer alloc] initWithParams:params];- 其中
params是构造参数。 - 数据模板目前仅支持在线资源/
Bitmap替换,本地图片资源可先读取成Bitmap再传进来。
1.1. 构造参数说明
目前支持的属性:
url:动画资源url链接downgradeImage【可选】:Bitmap/UIImage类型,创建失败或运行时异常的降级图。variables【可选】:数据模版 map,key 是数据模版的 key,value 是替换的图片 url 或文本内容variablesBitmap【可选】:数据模版 map,key 是数据模版的 key,value 是替换的Bitmap/UIImage类型的图片
2. 加载动画资源
Android:
player.loadScene(new GEPlayer.Callback() {
@Override
public void onResult(boolean success, String errorMsg) {
}
});iOS:
[player loadScene:^(bool success, NSString * errorMsg) {
}];回调参数说明:
success:是否成功errorMsg:如果失败,这里返回错误信息
3. 获取动画宽高比
Android:
player.getAspect();iOS:
[player getAspect];- 应在加载成功之后调用
4. 获取动画总帧数
Andriod:
player.getFrameCount();iOS:
[player getFrameCount];- 应在加载成功之后调用
- 时间与帧数的转换关系:毫秒时间 = 帧数 * 33
5. 播放
Android:
// 完整播放
player.play(repeatCount, new GEPlayer.Callback() {
@Override
public void onResult(boolean success, String errorMsg) {
}
});
// 区间播放
player.play(fromFrame, toFrame, repeatCount, new GEPlayer.Callback() {
@Override
public void onResult(boolean success, String errorMsg) {
}
});iOS:
// 完整播放
[player playWithRepeatCount:repeatCount
Callback:^(bool success, NSString * errorMsg) {
}];
// 区间播放
[player playWithFromFrame:fromFrame
ToFrame:toFrame
RepeatCount:repeatCount
Callback:^(bool success, NSString * errorMsg) {
}];- 应在加载成功之后调用。
5.1. 参数说明
fromFrame【可选】:播放起始帧,闭区间toFrame【可选】:播放结束帧,闭区间repeatCount:重复次数。-1 表示一直播放;0 表示不循环,只播放一次callback:播放完成回调
- 时间与帧数的转换关系:毫秒时间 = 帧数 * 33
5.2. 回调说明
success:是否完成播放
- 如果是循环播放,只会在最后一轮播放结束后回调
errorMsg:如果播放失败,或播放中出现异常,这里返回错误信息
6. 播放控制
Android:
// 暂停
player.pause();
// 恢复
player.resume();
// 停止
player.stop();iOS:
// 暂停
[player pause];
// 恢复
[player resume];
// 停止
[player stop];- 应在加载成功之后调用。
7. 销毁
Android:
player.destroy();
player = null;iOS:
[player destroy];
player = nil;- 建议在不需要时主动销毁播放器以即时释放内存。
- 如果播放器没有任何引用,会在 GC 时释放。
生命周期

Preview