TAVMagicUIKit iOS 接入指南
TAVMagicUIKit 是一个高级编辑界面操作的 UI SDK,本文将介绍如何在短时间内完成 TAVMagicUIKit 组件的接入。按本文档叙述的接入方式,您可以快速完成接入工作,并最终完成包含完整 UI 界面的视频剪辑功能。
准备工作
环境准备
Xcode 9.0+。
iOS 9.0 以上的 iPhone 或者 iPad 真机。
项目已配置有效的开发者签名。
申请 License

初始化 UIKit
以下是集成 UIKit 的步骤。
1. 在工程中添加依赖
手动集成方式
1. 下载获得 TAVMagicUIKit SDK,解压后您将得到
TAVMagicUIKit.framework(SDK) 、TAVMagicUIKit.bundle(UIKIT 界面需要的 icon 切图)。2. 将 TAVMagicUIKit SDK 中的
TAVMagicUIKit.framework 和TAVMagicUIKit.bundle添加进工程目录。3. 需要注意的是 UIKit 需要依赖 TAVMagic SDK,所以您还需要集成 TAVMagic SDK。您可以选择 CocoaPods 集成或者手动集成,具体步骤参考 TAVMagicSDK 集成文档。
Pod 集成方式
目前 TAVMagicUIKit 支持 Pods 渠道方式进行集成,集成 Pods 方法如下:
1. 在 Podfile 中添加如下依赖项:
pod 'TAVMagicUIKit', :podspec => "https://mediacloud-76607.gzc.vod.tencent-cloud.com/TAVMagic/iOS/Release/1.6.1.1/TAVMagicUIKit.podspec"# TAVMagicUIKit依赖 TencentEffect_Edit美颜库 & TAVMagic核心SDKpod 'TencentEffect_Edit', :podspec => 'https://mediacloud-76607.gzc.vod.tencent-cloud.com/TencentEffect/iOS/edit/3.9.1.5/TencentEffect_Edit.podspec'pod 'TAVMagic',:podspec => 'https://mediacloud-76607.gzc.vod.tencent-cloud.com/TAVMagic/iOS/Release/latest/TAVMagic.podspec'
2. 在 Podfile 目录下执行
pod install安装依赖。2. 将特效素材资源拷贝到工程
如果需要使用和 Demo 一样的素材资源(贴纸、滤镜、特效、音乐、模板),可以从 TAVMagicUIKitSample 中将素材资源包
resource拷贝拖入到 app 项目工程中。3. 设置 License鉴权
您可以根据业务需求,在相关模块的初始化代码中设置 URL 和 KEY。设置 License 后将立即触发下载。建议在应用初始化时完成设置,以避免实际使用时临时下载对性能造成影响。
//如果仅仅是为了触发下载或更新license,而不关心鉴权结果,则第4个参数传入null。[TELicenseCheck setTELicense:<#licenseUrl#> key:<#licenseKey#> completion:^(NSInteger authresult, NSString * _Nonnull errorMsg) {if (authresult == TELicenseCheckOk) {//鉴权成功} else {//鉴权失败}}];
4. TAVMagicUIKIT 使用基本流程
TAVMagicUIKIT.framework包含了剪辑界面所有 UI 并公开了相册选择器控件和编辑控制器控件相关 API,内部依赖了 TAVMagicSDK。1. 调用
TAVMagicUIKIT.framework的相册选择器,弹出相册并监听选择相册资源的回调。2. 根据选择相册资源回调,接收选择的资源。
3. 初始化 TAVMagicUIKIT.framework 提供的预览页面 TAVEditorPreviewController,在初始化方法中传入资源。
4. 跳转至 TAVEditorViewController 即可。
使用 UIKit
相册选择器
1. 弹出相册选择器:
#import <TAVMagicUIKit/TAVAlbumPickerController.h>#import <TAVMagicUIKit/TAVAlbumAuthorizer.h>#import <TAVMagicUIKit/TAVAlbumPickerFactory.h>// 申请相册权限[TAVAlbumAuthorizer checkAlbumAuthorize:^(PHAuthorizationStatus status) {// 弹出相册选择器[self showPickerVC];}];// 弹出相册选择器- (void)showPickerVC{TAVAlbumPickerOptions *options = [TAVAlbumPickerFactory defaultAlbumPickerOptions];TAVAlbumPickerController *pickerController = [[TAVAlbumPickerController alloc] initWithOptions:options];pickerController.modalPresentationStyle = UIModalPresentationFullScreen;pickerController.pickerDelegate = self;[self presentViewController:pickerController animated:YES completion:nil];}
2. 监听相册选择器回调:
#pragma mark - TAVAlbumPickerControllerDelegate- (void)albumPickerController:(TAVAlbumPickerController *)pickerController didFinishPickingAlbumAssets:(NSArray<TAVAlbumAsset*> *)albumAssets{// 获取albumAssets资源的路径,添加进TAVMagic SDKdispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{NSMutableArray *resources = [NSMutableArray array];for (TAVAlbumAsset *mediaItem in albumAssets) {TAVAlbumResource *resource;if (mediaItem.mediaType == TAVAlbumAssetTypeVideo) {resource = [self videoResourceWithPHAsset:mediaItem.asset];} else if (mediaItem.mediaType == TAVAlbumAssetTypeImage) {resource = [self imageResourceWithPHAsset:mediaItem.asset];}[resources addObject:resource];}dispatch_async(dispatch_get_main_queue(), ^{[self gotoPreviewControllerWithResource:resources];[pickerController dismissViewControllerAnimated:YES completion:nil];});});}
3. 跳转到 TAVMagicUIKit 的编辑页面:
- (void)gotoPreviewControllerWithResource:(NSArray<TAVAlbumResource *> *)resources {TAVEditorPreviewController *previewVC = [[TAVEditorPreviewController alloc] initWithAssetPath:nil resources:resources];self.materialProvider.prepareEditor = nil;[self configPreviewContrller:previewVC];[self.navigationController pushViewController:previewVC animated:YES];}