iOS

最近更新时间:2026-01-23 17:20:31

我的收藏

TAVMagicUIKit iOS 接入指南

TAVMagicUIKit 是一个高级编辑界面操作的 UI SDK,本文将介绍如何在短时间内完成 TAVMagicUIKit 组件的接入。按本文档叙述的接入方式,您可以快速完成接入工作,并最终完成包含完整 UI 界面的视频剪辑功能。

准备工作

环境准备

Xcode 9.0+。
iOS 9.0 以上的 iPhone 或者 iPad 真机。
项目已配置有效的开发者签名。

申请 License

参见 License 申请 的指引申请 License 后,从 腾讯云视立方控制台 复制 License Key 和 License URL,如下图所示:


初始化 UIKit

以下是集成 UIKit 的步骤。

1. 在工程中添加依赖

手动集成方式

1. 下载获得 TAVMagicUIKit SDK,解压后您将得到 TAVMagicUIKit.framework(SDK) 、TAVMagicUIKit.bundle(UIKIT 界面需要的 icon 切图)。
2. 将 TAVMagicUIKit SDK 中的TAVMagicUIKit.frameworkTAVMagicUIKit.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核心SDK
pod '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 SDK
dispatch_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];
}