使用客户端 SDK
阅读时间:3分钟更新于 2025-07-09 19:41
获取依赖
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