
# add in podfilepod 'TAVMagic', :podspec => 'https://mediacloud-76607.gzc.vod.tencent-cloud.com/TAVMagic/iOS/Release/1.6.2.0/TAVMagic.podspec'# update pod in terminalpod install --repo-update
//如果仅仅是为了触发下载或更新license,而不关心鉴权结果,则completion参数传入null。[TELicenseCheck setTELicense:@"license url" key:@"licenseKey" completion:^(NSInteger authresult, NSString * _Nonnull errorMsg) {NSLog(@"authResult : %zd msg:%@",authresult,errorMsg);}];
错误码 | 说明 |
0 | 成功。 |
-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 | 鉴权失败。 |
其他 | 请联系腾讯云团队处理。 |
- (void)buildSDK {NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"LightSDK" ofType:@"bundle"];self.editor = [[TAVEditor alloc] initWithRenderSize:CGSizeZero assetsPath:bundlePath];}
TAVPreviewParam *param = [[TAVPreviewParam alloc] init];param.videoView = self.view;param.observer = self; // 包含预览进度、状态回调param.shouldRepeat = YES;[self.editor initPlayerWithPreviewParam:param];
TAVEditor 类进行调用。addVideoClip 添加视频源或通过 addImageClip 添加图片源以在播放器中预览视频或图片:// 添加一个视频源[editor addVideoClip(@"您的视频路径")];// 添加完所有视频源之后调用刷新重新生成预览资源,即可观看对应效果[editor flushImmediately];// 设置第1个视频的播放时间区间,从0到视频时长[editor setClipRange:timeRange index:1];// 设置第1个视频源的音量(可选),音量范围是[0,1][editor setClipVolume:volume index:1];
seekToTime 方法跳转至指定时长处播放:[editor seekToTime:seekTime];
setTemplateDir 设置模板文件夹路径。接口会有一个返回值具体参考 TAVTemplateCode。TAVTemplateCode ret = [editor setTemplateDir@"模板文件夹路径"];
getTemplateConfig 方法获取模板坑位、时长等关键信息。示例:TAVTemplateConfig config = [editor getTemplateConfig(@"模板文件夹路径")];//兼容的媒体格式 VIDEO(视频) PHOTO(图片) MULTI(混合)TAVTemplateMediaType mediaType = config.mediaType;//可填充的数量限制NSArray<TAVClipPlaceHolder *> clipHolders = config.clipPlaceHolders;//每个段落播放时长clipHolders[0].contentDuration
addVideoClip 添加视频源或通过 addImageClip 添加图片源以完成做同款的预览。示例:// 做同款模式下,选择的视频源时长应该大于对应的TAVClipPlaceHolder的播放时长// 添加一个视频源[editor addVideoClip(@"您的视频路径")];// 添加完所有视频源之后调用刷新重新生成预览资源,即可观看对应效果[editor flushImmediately];
/*** 在改变资源/BGM后需要调用此接口刷新生成播放资源*/- (void)flushImmediately;
generateVideo 接口快速导出。示例:// generateVideo接口第一个参数为导出压缩质量,支持下列四个等级typedef NS_ENUM(NSInteger, TAVVideoCompressed) {TAVVideoCompressed480P = 0 , // 压缩至480P分辨率(640*480)TAVVideoCompressed540P = 1 , // 压缩至540P分辨率 (960*540)TAVVideoCompressed720P = 2 , // 压缩至720P分辨率 (1280*720)TAVVideoCompressed1080P = 3 // 压缩至1080P分辨率 (1920*1080)};NSString *outputPath = "您的导出路径";[self.editor generateVideoWithCompressed:TAVVideoCompressed1080P outputPath:outputPath progress:^(CGFloat progress) {} completion:^(NSError * _Nonnull error, NSString * _Nonnull outputPath) {}];
generateVideo 方法设置 TAVEditorGenerateConfig 后,视频将会按照 config 中设置的宽高导出,不再根据 TAVVideoCompressed 压缩。示例:TAVEditorGenerateConfig *config = [TAVEditorGenerateConfig new];config.resolution = CGSizeMake(720,1280);config.frameRate = 60;config.videoBitRate = 8 * 1000 * 1000;NSString *outputPath = "您的导出路径";[self.videoContext.editor generateVideo:nil outputPath:resDir progress:^(CGFloat progress) {NSLog(@"progress : %f",progress);} completion:^(NSError * _Nonnull error, NSString * _Nonnull outputPath) {}];
TAVEditor 中 release 方法进行释放:[editor deinit];
/*** 开始播放*/- (void)play;
/*** 暂停*/- (void)pause;/*** 停止播放 会seek到0*/- (void)stop;/*** 判断播放中** @return 播放中*/- (BOOL)isPlaying;
/*** 获取播放总时长** @return 时间*/- (CMTime)getTotalDuration;
/*** seek** @param seekTime 时间*/- (void)seekToTime:(CMTime)seekTime;
文档反馈