API 文档

最近更新时间:2025-10-13 11:07:22

我的收藏
本文主要介绍腾讯礼物动画特效 SDK 的 Flutter 端 API 接口文档,以便于查阅和使用。

FTCMediaXBase

instance

说明
获取 FTCMediaXBase 的单例。
接口
static FTCMediaXBase get instance
参数说明

setLicense

说明
设置 License。
接口
Future<void> setLicense(String url, String key, FTCMediaLicenseListener listener) async
参数说明
参数名
类型
描述
url
String
license 的 url。
key
String
license 的 key。
callback
ILicenseCallback
回调。
回调声明:
typedef FTCMediaLicenseListener = void Function(int errCode, String msg);
License 校验常见错误码:
错误码
描述
0
成功。Success。
-1
输入参数无效,例如 URL 或 KEY 为空。
-3
下载环节失败,请检查网络设置。
-4
从本地读取的 TE 授权信息为空,可能是 IO 失败引起。
-5
读取 VCUBE TEMP License文件内容为空,可能是 IO 失败引起。
-6
v_cube.license 文件 JSON 字段不对。请联系腾讯云团队处理。
-7
签名校验失败。请联系腾讯云团队处理。
-8
解密失败。请联系腾讯云团队处理。
-9
TELicense 字段里的 JSON 字段不对。请联系腾讯云团队处理。
-10
从网络解析的 TE 授权信息为空。请联系腾讯云团队处理。
-11
把TE授权信息写到本地文件时失败,可能是 IO 失败引起。
-12
下载失败,解析本地 asset 也失败。
-13
鉴权失败,请检查 so 是否在包里,或者已正确设置 so 路径。
3004/3005
无效授权。请联系腾讯云团队处理。
3015
Bundle Id / Package Name 不匹配。检查您的 App 使用的 Bundle Id / Package Name 和申请的是否一致,检查是否使用了正确的授权文件。
3018
授权文件已过期,需要向腾讯云申请续期。
其他
请联系腾讯云团队处理。

setLogEnable

说明
是否开启 Log 输出,默认开始。
注意:
Android 端保存在 /sdcard/Android/data/packagename/files/TCMediaX 目录,iOS 端保存在 sandbox 的 Documents/TCMediaX 目录,您可以根据业务需要把此目录的日志上传到业务后台,用于定位线上用户问题。
接口
Future<void> setLogEnable(bool enable) async

FTCEffectAnimView

FTCEffectAnimView

说明
创建 FTCEffectAnimView 礼物动画播放实例。
接口
FTCEffectAnimView({this.controllerCallback, Key? viewKey})
参数说明
参数名
类型
描述
controllerCallback
FEffectViewControllerCallback
当前礼物动画的播放控制器创建成功回调。

FTCEffectViewController

startPlay

说明
启动播放器。
接口
Future<int> startPlay(String playUrl) async
参数说明
playUrl 为视频资源地址。
注意:
只支持播放手机本地视频资源, 如果您使用的网络视频资源, 先下载到本地再播放。

setVideoMode

说明
设置 tep 动画的 alpha 和 rgb 区域的对齐方式。
接口
Future<void> setVideoMode(FVideoMode videoMode) async
参数说明
videoMode 支持以下格式:
枚举值
含义
FVideoMode.VIDEO_MODE_NONE
普通mp4文件。
FVideoMode.EVIDEO_MODE_SPLIT_HORIZONTAL
左右对齐(alpha左\\rgb右)。
FVideoMode.VIDEO_MODE_SPLIT_VERTICAL
上下对齐(alpha上\\rgb下)。
FVideoMode.VIDEO_MODE_SPLIT_HORIZONTAL_REVERSE
左右对齐(rgb左\\alpha右)。
FVideoMode.VIDEO_MODE_SPLIT_VERTICAL_REVERSE
上下对齐(rgb上\\alpha下)。

setConfig

说明
设置特效播放器参数,需要在启动播放前调用。
接口
Future<void> setConfig(FTCEffectConfig config) async
参数说明
参考下面 FTCEffectConfig 类。

setScaleType

说明
设置对齐方式。
接口
Future<void> setScaleType(FScaleType type) async
参数说明
type 支持以下格式:
枚举值
含义
FScaleType.FIT_XY
完整填充整个布局,默认值。
FScaleType.FIT_CENTER
按视频比例在布局中间完整显示。
FScaleType.CENTER_CROP
按视频比例完整填充布局(多余部分不显示)。

setFetchResource

说明
设置融合动画的资源。
接口
void setFetchResource(FResourceFetcher resFetcher)
参数说明
FResourceFetcher 接口:
class FResourceFetcher {
// 获取图片
FResImgResultFetcher? imgFetcher;

// 获取文字
FResTextResultFetcher? textFetcher;

// 资源释放通知
FResReleaseListener? releaseListener;

FResourceFetcher({this.imgFetcher, this.textFetcher, this.releaseListener});
}
FEffectResource#tag 为融合动画的 tag(下标),可以判断 tag 传入不同的文字或图片资源。

requestUpdateResource

说明
播放过程中更新融合动画信息。
调用当前方法之后,会触发 IFetchResource 接口回调更新融合动画信息。
接口
Future<void> requestUpdateResource() async

setRenderRotation

说明
设置融合动画选择旋转角度,支持0,90180,270,360度。
接口
Future<void> setRenderRotation(int rotation) async

isPlaying

说明
返回特效播放器是否在播放中。
接口
Future<bool> isPlaying() async

resume

说明
恢复特效动画播放。
接口
Future<void> resume() async

pause

说明
暂停特效动画播放。
接口
Future<void> pause() async

seekTo

说明
跳转到指定位置开始播放。
注意:
startPlay() 之后才可以调用该方法,否则不生效。
该接口对于 tcmp4 动画、或者设置了 FCodecType.TX_LITEAV_SDK 时播放的mp4动画生效。
milliSec:要跳转到指定时长处开始播放,单位毫秒。
接口
Future<void> seekTo(int millSec) async

seekProgress

说明
跳转到指定位置开始播放。
progress:跳转到动画时长的指定百分比处开始播放,单位百分比,取值范围为:[0.0-1.0]。
注意:
startPlay() 之后才可以调用该方法,否则不生效。
该接口对于 tcmp4 动画、或者设置了 FCodecType.TX_LITEAV_SDK 时播放的mp4动画生效。
入参 progress 取值范围为 [0.0-1.0],超出范围的不生效。
接口
Future<void> seekProgress(double progress) async

setLoop

说明
设置循环播放。
true: 表示循环播放。
false: 表示关闭循环播放。
接口
Future<void> setLoop(bool isLoop) async

setLoopCount

说明
设置循环播放次数。
loopCount:表示循环播放次数。当 loopCount <= 0 时,表示无限循环播放;当 loopCount=n(n>=1)时表示从开始播放到播放结束,共播放 n 次。
注意:
loopCount 默认值是1,即当外部不主动调用该方法时,动画只播放一次就结束。
setLoop(boolean isLoop) 方法内部会调用当前方法,即当 isLoop = true 时,等价于调用 setLoopCount(-1);即当 isLoop = false 时,等价于调用 setLoopCount(1);因此这两个方法是互相影响的,后调用的会覆盖之前的调用。
接口
Future<void> setLoopCount(int loopCount) async

setDuration

说明
设置动画需要多长时间播放完成。设置之后,后续动画播放时自动调整动画播放速度,以保证动画在设置的规定时长时播放结束。
即:设置的时长超过动画原时长,则动画慢放;小于动画原时长,则快进播放。
durationInMilliSec: 要设置的时长,单位毫秒。
注意:
目前仅对 tcmp4 格式的动画生效。
当前方法和 setRate 设置倍速的方法是互斥的,后调用的会覆盖掉先调用的。
接口
Future<void> setDuration(int durationInMilliSec) async

stopPlay

说明
停止播放。
接口
Future<void> stopPlay({bool? clearLastFrame}) async

setMute

说明
设置是否静音播放。
true: 静音播放。
false: 非静音播放。
接口
Future<void> setMute(bool mute)

setPlayListener

说明
设置特效播放器播放回调。
接口
void setPlayListener(FAnimPlayListener? listener)
参数说明
IAnimPlayListener 接口:
class FAnimPlayListener {
FEmptyFunction? onPlayStart;

FEmptyFunction? onPlayEnd;

FIntParamsFunction? onPlayError;

FOnPlayEventFunction? onPlayEvent;

FAnimPlayListener({this.onPlayStart, this.onPlayEnd, this.onPlayError, this.onPlayEvent});
}
对于 onPlayEvent 方法中的 event 值详见 FTCEffectPlayerConstant 类中的常量值:
static static int REPORT_INFO_ON_PLAY_EVT_PLAY_END = 2006;
static static int REPORT_INFO_ON_PLAY_EVT_RCV_FIRST_I_FRAME = 2003;
static static int REPORT_INFO_ON_PLAY_EVT_CHANGE_RESOLUTION = 2009;
static static int REPORT_INFO_ON_PLAY_EVT_LOOP_ONCE_COMPLETE = 6001;
static static int REPORT_INFO_ON_VIDEO_CONFIG_READY = 200001;
static static int REPORT_INFO_ON_NEED_SURFACE = 200002;
static static int REPORT_INFO_ON_VIDEO_SIZE_CHANGE = 200003;
static static int REPORT_ANIM_INFO = 200004;
对于 onPlayError 方法中的 errorCode 值详见 FTCEffectPlayerConstant 类中的常量值:
static const REPORT_ERROR_TYPE_HEVC_NOT_SUPPORT = -10007; // 不支持h265
static const REPORT_ERROR_TYPE_INVALID_PARAM = -10008; // 参数非法
static const REPORT_ERROR_TYPE_INVALID_LICENSE = -10009; // License 不合法
static const REPORT_ERROR_TYPE_ADVANCE_MEDIA_PLAYER = -10010; // MediaPlayer播放失败
static const REPORT_ERROR_TYPE_MC_DECODER = -10011; // MediaCodec 中 Decoder 失败
static const REPORT_ERROR_TYPE_UNKNOWN_ERROR = -20000; // 未知错误

getTCAnimInfo

说明
获取当前播放动画对应的信息,返回 FTCEffectAnimInfo 实例,详见 FTCEffectAnimInfo。
注意:
该方法必须在 FAnimPlayListener#onPlayStart() 方法中,或者该方法执行之后调用才可以获取到当前动画的信息,否则返回 null。
接口
Future<FTCEffectAnimInfo> getTCAnimInfo() async

FTCEffectConfig

说明
构造特效播放器配置。
codecType 属性
// 设置 CodecType
FCodecType? codecType;
参数说明
它有三个取值,分别是:
FCodecType.TC_MPLAYER (MPLAYER 播放引擎)
FCodecType.TC_MCODEC(MCODEC 播放引擎,仅在 Android 平台生效)
FCodecType.TX_LITEAV_SDK (腾讯云播放器 SDK)
注意:
目前仅支持在播放器开始前调用 setConfig() 方法来设置播放配置,开始播放后不支持修改配置。
目前支持的三种 CodecType 仅对 TEP 动画生效。
如果设置 CodecType 为 FCodecType.TX_LITEAV_SDK ,则还需要单独引入腾讯云播放器 SDK,以及申请、注册好其对应的 license。

freezeFrame 属性

// 设置冻结停留帧索引
FFreezeFrame? freezeFrame;
参数说明
入参 frame 表示当动画播放中需要停留在哪一帧。目前可选值:
FFreezeFrame.FREEZE_FRAME_NONE:关闭 freezeFrame 能力,播放器正常播放暂停消失。
FFreezeFrame.FREEZE_FRAME_LAST:当第一次播放完毕之后,画面停留在最后一帧。
animType 属性(仅Android)
// 设置后续要播放的动画格式
FAnimType? animType;
参数说明
用于指定后续要播放的动画格式,适用于某些情况下,要播放的动画文件后缀被修改的场景。入参 type 表示要指定的动画格式。目前可选值:
FAnimType.AUTO (SDK 默认策略,即以动画文件的后缀来判断动画格式,例如 tcmp4/mp4/tep/tepg 等格式。)
FAnimType.MP4 (MP4 动画格式,后续都将动画文件当做 MP4 类型来播放,无视文件后缀名。)
FAnimType.TCMP4 (TCMP4 动画格式,后续都将动画文件当做 TCMP4 类型来播放,无视文件后缀名。)

FTCEffectAnimInfo

说明
存储当前播放的动画信息。
属性说明
属性名
类型
描述
type
int
当前动画类型,取值:FAnimType.MP4 MP4类型的资源和 FAnimType.TCMP4 TCMP4 类型的资源。
duration
long
动画时长,单位毫秒。
width
int
动画宽度。
height
int
动画高度。
encryptLevel
int
当前动画的高级加密类型,取值如果是0,表示没有高级加密,否则表示已是高级加密。
mixInfo
FMixInfo
融合动画信息,为 null 时则表示该动画无融合信息。

FMixInfo

说明
存储当前播放动画中的融合信息。
属性说明
属性名
类型
描述
textMixItemList
List<FMixItem>
文字融合信息,为 null 时则表示无文字融合信息。
imageMixItemList
List<FMixItem>
图片融合信息,为 null 时则表示无图片融合信息。

FMixItem

说明
存储当前播放动画中的融合信息。
属性说明
属性名
类型
描述
id
String
当前融合动画 id。
tag
String
当前融合动画 tag。
text
String
当前文字融合动画文字内容(图片融合动画时该值为空)。如果是 tcmp4 时,则是其内部原始的文字内容;如果是 mp4 时,则是在工具中填写的 tag 值。

FTCEffectText

说明
融合动画替换文本样式数据类。
属性说明
属性名
类型
描述
text
String
最终要替换显示的文本内容。
color
int
文字颜色,格式要求:ARGB,如 0xFFFFFFFF。
fontStyle
String
文字显示样式,可取值:"bold"表示粗体,不传则默认大小。
alignment
int
文字对齐方式,可取值:TEXT_ALIGNMENT_NONE(默认值,即保持 SDK 默认对齐方式)、TEXT_ALIGNMENT_LEFT(居左) 、TEXT_ALIGNMENT_CENTER(居中)、 TEXT_ALIGNMENT_RIGHT(居右)。
fontSize
double
文字大小,单位是px;如果设置了文字大小(值大于0),则内部自动缩放策略失效,强制以设置的文字大小为准,则可能出现文字过大显示不全的问题。