使用客户端 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