TCMediaXBase类
getInstance
说明
获取 TCMediaXBase 的单例。
接口
+ (instancetype)getInstance;
参数说明
无
setLicense
说明
设置 License
接口
- (void)setLicenceURL:(NSString *)url key:(NSString *)key;
参数说明
参数名 | 类型 | 描述 |
url | NSString | licence 的 url |
key | NSString | licence 的 key |
setDelegate
说明
设置 License 注册结果回调
接口
- (void)setDelegate:(id<TCMediaXBaseDelegate>)delegate;
回调声明:
- (void)onLicenseCheckCallback:(int)errcode withParam:(NSDictionary *)param;
License 校验错误码:
public interface TXLicenceErrorCode {TMXLicenseCheckOk = 0, // 成功TMXLicenseCheckInvalidInput = -1, // 输入参数无效TMXLicenseCheckDownloadError = -3, // 下载环节失败,请检查网络设置TMXLicenseCheckLocalLicenseEmpty = -4, // 从本地读取的TE授权信息为空TMXLicenseCheckFileContentEmpty = -5, // 读取VCUBE TEMP License文件内容为空TMXLicenseCheckJsonErrorVcube = -6, // v_cube.license文件json字段错误TMXLicenseCheckSignatureError = -7, // 签名校验失败TMXLicenseCheckDecodeError = -8, // 解密失败TMXLicenseCheckTEJsonError = -9, // TELicense字段里的json字段错误TMXLicenseCheckTEContentEmpty = -10, // 从网络解析的TE授权信息为空TMXLicenseCheckWriteLocalFailed = -11, // 把TE授权信息写到本地文件时失败TMXLicenseCheckDownloadAndAssetBothFailed = -12, // 下载失败,解析本地asset也失败TMXLicenseCheckAuthError = -13, // 鉴权失败}
setLogEnable
说明
是否开启 Log 输出,默认开始。
Android 端保存在 /sdcard/Android/data/packagename/files/TCMediaX 目录,iOS 端保存在 sandbox 的 Documents/TCMediaX 目录,您可以根据业务需要把此目录的日志上传到业务后台,用于定位线上用户问题。
接口
- (void)setLogEnable:(BOOL)enabled;
getSdkVersion
说明
获取当前 sdk 的版本。
接口
- (NSString *)getSdkVersion;
TCEffectAnimView类
initWithFrame
说明
创建 TCEffectAnimView。
接口
- (instancetype)initWithFrame:(CGRect)frame;
参数说明
frame: View 对象的 frame。
startPlay
说明
启动播放器。
接口
- (void)startPlay:(NSString *)url;
参数说明
url 为视频资源地址。
注意:
只支持播放本地视频资源, 如果您使用的网络视频资源, 先下载到本地再播放。
setVideoMode
说明
设置 mp4 动画的 alpha 和 rgb 区域的对齐方式。
接口
- (void)setVideoMode:(TCEPVAPVideoFrameTextureBlendMode)mode;
参数说明
mode 支持以下格式:
枚举值 | 含义 |
TCEPVAPVFTextureBlendMode_None | 普通mp4文件 |
TCEPVAPVFTextureBlendMode_AlphaLeft | 左右对齐(alpha左\\rgb右) |
TCEPVAPVFTextureBlendMode_AlphaTop | 上下对齐(alpha上\\rgb下) |
TCEPVAPVFTextureBlendMode_AlphaRight | 左右对齐(rgb左\\alpha右) |
TCEPVAPVFTextureBlendMode_AlphaBottom | 上下对齐(rgb上\\alpha下) |
setEffectPlayerConfig
说明
设置特效播放器参数,需要在启动播放前调用。
接口
- (void)setEffectPlayerConfig:(TCEffectConfig *)config;
参数说明
setRenderMode
说明
设置对齐方式
接口
- (void)setRenderMode:(TCEPVPViewContentMode)renderMode;
参数说明
renderMode 支持以下格式:
枚举值 | 含义 |
TCEPVPViewContentModeScaleToFill | 内容被拉伸到填满整个视图,可能失真,默认值。 |
TCEPVPViewContentModeAspectFit | 内容保持原始宽高比,缩放以完全显示,可能有空白区域。 |
TCEPVPViewContentModeAspectFill | 内容保持原始宽高比,缩放以填满视图,可能会裁剪部分内容。 |
effectPlayerDelegate
说明
TCEPAnimViewDelegate 支持设置礼物动画特效播放事件回调,设置融合动画信息等。
播放回调接口
// 动画开始播放回调- (void)tcePlayerStart:(ITCEffectPlayer *)player;// 动画结束播放回调- (void)tcePlayerEnd:(ITCEffectPlayer *)player;// 动画播放错误回调- (void)tcePlayerError:(ITCEffectPlayer *)player error:(NSError *)error;// 播放器事件通知- (void)onPlayEvent:(ITCEffectPlayer *)playerevent:(int)EvtIDwithParam:(NSDictionary *)param;
融合动画信息替换接口
// 替换融合动画资源配置中的文本占位符, 支持配置文件的对齐方式、颜色等属性。- (TCEffectText *)loadTextForPlayer:(ITCEffectPlayer *)playerwithTag:(NSString *)tag;// 替换融合动画资源中的图片信息// 获取当前图片对应 tag: NSString *tag = context[TCEPContextSourceTypeImageIndex];- (void)loadImageForPlayer:(ITCEffectPlayer *)playercontext:(NSDictionary *)contextcompletion:(void(^)(UIImage *image,NSError *error))completionBlock;
融合动画点击接口
// 融合动画的资源点击事件回调- (void)tcePlayerTagTouchBegan:(ITCEffectPlayer *)player tag:(NSString *)tag;
setRenderRotation
说明
设置动画旋转方向。
接口
- (void)setRenderRotation:(TCEP_Enum_Type_HomeOrientation)rotation;
参数说明
rotation 支持以下格式:
枚举值 | 含义 |
TCEP_HOME_ORIENTATION_RIGHT | HOME 键在右边,横屏模式。 |
TCEP_HOME_ORIENTATION_DOWN | HOME 键在下面,手机直播中最常见的竖屏直播模式 |
TCEP_HOME_ORIENTATION_LEFT | HOME 键在左边,横屏模式。 |
TCEPVAPVFTextureBlendMode_AlphaRight | HOME 键在上边,竖屏直播。 |
isPlaying
说明
返回特效播放器是否在播放中
接口
- (BOOL)isPlaying;
resume
说明
恢复特效动画播放
接口
- (void)resume;
pause
说明
暂停特效动画播放
接口
- (void)pause;
seekTo
说明
跳转到指定位置开始播放
注意:
1. startPlay() 之后才可以调用该方法,否则不生效。
2. 该接口对于 tcmp4 动画、或者设置了 vapEngineType 为 TCEPCodecTypeVODPlayer 时播放的 mp4 动画生效。
time:要跳转到指定时长处开始播放,单位毫秒。
接口
- (void)seek:(float)time;
seekProgress
说明
跳转到指定位置开始播放
注意:
1. startPlay() 之后才可以调用该方法,否则不生效。
2. 该接口对于 tcmp4 动画、或者设置了 vapEngineType 为 TCEPCodecTypeVODPlayer 时播放的 mp4 动画生效。
3. 入参 progress 取值范围为 [0.0 - 1.0],超出范围的不生效。
progress:跳转到动画时长的指定百分比处开始播放,单位百分比,取值范围为:[0.0 - 1.0]。
接口
- (void)seekProgress:(float)progress;
setLoop
说明
设置循环播放。
YES: 表示循环播放。
NO: 表示关闭循环播放。
接口
- (void)setLoop:(BOOL)loop;
setLoopCount
说明
设置循环播放次数。
loopCount: 表示循环播放次数。当loopCount <=0 时,表示无限循环播放;当 loopCount=n(n>=1)时表示从开始播放到播放结束,共播放n次
注意:
1. loopCount 默认值是1,即当外部不主动调用该方法时,动画只播放一次就结束。
2. setLoop 方法内部会调用当前方法,即当 isLoop = true 时,等价于调用 setLoopCount(-1);即当 isLoop = false 时,等价于调用 setLoopCount(1);因此这两个方法是互相影响的,后调用的会覆盖之前的调用。
接口
- (void)setLoopCount:(int)loopCount;
setDuration
说明
设置动画需要多长时间播放完成。设置之后,后续动画播放时自动调整动画播放速度,以保证动画在设置的规定时长时播放结束。
即:设置的时长超过动画原时长,则动画慢放;小于动画原时长,则快进播放。
注意:
1. 目前仅对 tcmp4 格式的动画生效。
2. 当前方法和 setRate 设置倍速的方法是互斥的,后调用的会覆盖掉先调用的。
durationInMilliSec: 要设置的时长,单位毫秒。
接口
- (void)setDuration:(long)durationInMilliSec;
stopPlay
说明
停止播放。
接口
- (void)stopPlay;
setMute
说明
设置是否静音播放。
YES: 静音播放。
NO: 非静音播放。
接口
- (void)setMute:(BOOL)bEnable;
getTCAnimInfo
说明
注意:
该方法必须在 IAnimPlayListener#onPlayStart() 方法中,或者该方法执行之后调用才可以获取到当前动画的信息,否则返回 null。
接口
- (nullable TCEffectAnimInfo *)getAnimInfo;
TCEffectConfig类
说明
构造特效播放器配置,支持属性有:
1. vapEngineType(CodecType type) :它有三个取值,分别是:
TCEPCodecTypeAVPlayer,礼物动画特效默认播放引擎。
TCEPCodecTypeVODPlayer ,腾讯云播放器SDK播放引擎。
// 设置播放配置,非必需的步骤TCEffectConfig *config = [[TCEffectConfig alloc] init];[self.alphaAnimView setEffectPlayerConfig:config];
注意:
1. 目前仅支持在播放器开始前调用 setEffectPlayerConfig 方法来设置播放配置,开始播放后不支持修改配置。
2. 目前支持的 2 种 vapEngineType 仅对 MP4 动画生效。
3. 如果设置 vapEngineType为 TCEPCodecTypeVODPlayer,则还需要单独引入腾讯云播放器 SDK,以及申请、注册好其对应的 license。
2. freezeFrame 用于设置播放动画冻结帧,目前可选值:
FRAME_NONE:默认取值,关闭 freezeFrame 能力,播放器正常播放暂停消失。
FRAME_FIRST:播放完毕,重新开始播放到下一次首帧出现时暂停。
FRAME_LAST:当第一次播放完毕之后,画面停留在最后一帧。
TCEffectAnimInfo
说明
存储当前播放的动画信息
属性说明
属性名 | 类型 | 描述 |
type | TCEPAnimResourceType | 当前动画类型,取值:TCEPAnimResourceTypeMP4 MP4类型的资源和 TCEPAnimResourceTypeTCMP4 TCMP4类型的资源。 |
duration | long | 动画时长,单位毫秒 |
width | int | 动画宽度 |
height | int | 动画高度 |
encryptLevel | TCEPEncryptLevelType | 当前动画的高级加密类型,取值如果是 TCEffectAnimInfo#ENCRYPT_LEVEL_NONE 表示没有高级加密,否则表示已是高级加密 |
TCEffectText
说明
融合动画替换文本样式数据类
属性说明
属性名 | 类型 | 描述 |
text | NSString | 最终要替换显示的文本内容 |
color | UIColor | 文字颜色,格式要求:ARGB,如 0xFFFFFFFF |
fontStyle | NSString | 文字显示样式,可取值:"bold"表示粗体,不传则默认大小 |
alignment | int | 文字对齐方式,可取值:TCEPTextAlignmentNone(默认值,即保持sdk默认对齐方式)、TCEPTextAlignmentLeft(居左) 、TCEPTextAlignmentCenter(居中)、 TCEPTextAlignmentRight(居右)。 |
fontSize | CGFloat | 文字大小,单位是px;如果设置了文字大小(值大于0),则内部自动缩放策略失效,强制以设置的文字大小为准,则可能出现文字过大显示不全的问题 |