涂图

  • 首页
  • 解决方案
    • 拍照和图片编辑
    • 视频录制和后期编辑
    • 模板视频
    • 人像美颜
    • 人脸特效
    • 滤镜特效
    • 贴纸特效
  • API服务
    • 人像服务
    • 视频融合
    • 人脸云
    • 在线滤镜
  • 客户案例
  • 下载
  • 文档
  • 关于我们
  • 控制台
  • 一、新手上路
  • 控制台操作说明
    • 控制台使用说明
    • 自定义资源上传说明
  • 二、SDK 文档
  • 图像 SDK
    • 产品说明
      • 产品指南
      • 性能测试报告
    • iOS 文档
      • 快速开始
      • 安装与更新
      • 集成向导
      • 相机组件的使用
      • 相册组件的使用
      • 照片美化组件的使用
      • 主题包基础使用
      • 自定义滤镜
      • 自定义贴纸
      • 自定义界面
      • 自定义 ProgressHUD 提示框(2.0.0~3.2.7)
      • 自定义 ProgressHUD 提示框
      • API 文档
      • 致谢
    • Android 文档
      • 快速开始
      • 安装与更新
      • 集成向导
      • 相机组件的使用
      • 照片美化组件的使用
      • 头像设置组件的使用
      • 多选相册组件的使用
      • 主题包基础使用
      • 自定义贴纸
      • 自定义滤镜
      • 自定义界面
      • 自定义进度信息提示框
      • 自定义 Activity 打开相机
      • API 文档
      • 致谢
    • iOS 技术问题
      • 「Incorrenct app key」
      • 更换滤镜效果图
      • 导航栏与状态栏
      • 组件中使用部分滤镜
      • Cocoapods 相关问题
      • 图片尺寸变化
      • Photos.framework 相关错误
      • 多包名发布
      • GPUImage 的相关错误
      • TuSDKTSALAsset 转换系统对象
      • 滤镜无法显示名称
      • 获取相机的点击事件
    • Android 技术问题
      • Incorrenct app key
      • 重复引用包
      • Recyclerview 库缺失
      • 方法数超出 65536 限制
      • 传入图片路径
      • 指定裁剪比例
      • 指定相册每行列数
      • 禁用相册自动跳转
      • 如何使用部分滤镜?
      • 代码混淆
      • TuSDK 使用的依赖库
      • 多渠道打包
      • 设置相机输出尺寸
      • 相机横屏设置
      • 自定义照片美化组件各功能模块效果默认参数值
    • 拼图设计
      • 拼图模板导出
    • 版本更新日志
      • iOS 版本更新日志
      • Android 更新日志
  • 视频剪辑 SDK
    • 产品说明
      • 产品指南
    • iOS文档
      • TuSDK Video Editor iOS 接入文档
    • Android文档
      • TuSDK Video Editor Android 接入文档
    • 版本更新日志
      • iOS 版本更新日志
      • Android 版本更新日志
  • 流处理(特效相机) SDK
    • 产品说明
      • 产品指南
    • iOS 文档
      • TuSDK特效相机接入文档-iOS
      • TuSDK直播特效接入说明-iOS
    • Android 文档
      • TuSDK特效相机接入文档-Android
      • TuSDK直播特效接入说明-Android
    • 版本更新日志
      • iOS 版本更新日志
      • Android 版本更新日志
  • 视频融合 SDK
    • 产品说明
      • 产品指南
      • 模板管理
    • iOS 文档
      • 快速开始
      • 安装与更新
      • TuSDK EVA 接入说明 2.0
      • API文档
    • Android 文档
      • 快速开始
      • 安装与更新
      • TuSDK EVA 接入说明 (2.0.0+)
      • API 文档
    • 模板设计
      • (新)标准模板设计规范
      • (旧)标准模板设计规范
      • 支持的 AE 功能和属性
      • 动态模板设计规范
    • 模板导出
      • (新)模板导出插件安装
      • (新)模板导出插件使用
      • (旧)模板导出插件安装
      • (旧)模板导出插件使用
      • (旧)模板效果查看器
      • (旧)模板打包规范
    • 版本更新日志
      • iOS 版本更新日志
      • Android 版本更新日志
      • 导出插件版本更新日志
      • 效果查看器更新日志
  • 短视频 SDK
    • 产品说明
      • 产品指南
      • 性能测试报告
    • iOS 文档
      • 快速开始
      • 集成向导
      • 录制相机的使用
      • 视频编辑器的使用
      • 功能 API 的使用
      • API 文档
    • Android 文档
      • 快速开始
      • 集成向导
      • 录制相机的使用
      • 视频编辑器的使用
      • 功能 API 的使用
      • API 文档
    • iOS 技术问题
      • 常见问题
    • Android 技术问题
      • 常见问题
    • 版本更新日志
      • iOS 版本更新日志
      • Android 版本更新日志
  • 三、云服务文档
  • 人像服务
    • 使用文档
      • 快速入门
      • 核心功能
    • API概述
      • API 概述
      • API 文档
    • 常见问题
      • 常见问题
  • 视频融合(云渲染)
    • 使用文档
      • 快速入门
      • 模板管理
    • API概述
      • API概述
      • API 文档
    • 模板设计
      • (新)标准模板设计规范
      • (旧)标准模板设计规范
      • 支持的 AE 功能和属性
      • 动态模板设计规范
    • 模板导出
      • (新)模板导出插件安装
      • (新)模板导出插件使用
      • (旧)模板导出插件安装
      • (旧)模板导出插件使用
      • (旧)模板效果查看器
      • (旧)模板打包规范
    • 常见问题
    • 版本更新日志
      • 导出插件版本更新日志
      • 效果查看器更新日志
  • 人脸云
    • 使用文档
      • 快速入门
      • 核心功能
    • API 概述
      • API 概述
    • 常见问题
      • 常见问题
  • 在线滤镜
    • 使用文档
      • 快速入门
      • 核心功能
      • FILTER API
      • API 错误码表
    • API概述
      • API 概述
    • 常见问题
      • 常见问题
  • 四、综合
  • 涂图隐私协议
  • 用户退出机制
  • 动态贴纸设计规范
  • 美妆贴纸设计规范
  • 云服务账单说明
  • 应用包名与密钥
  • 基础服务开发者升级流程
  • 五、常见问题
  • 常见问题
  • 遇到问题,怎么办?
  • 如何使用贴纸管理、滤镜管理?

快速搭建

  1. 下载源码
  2. 申请 License
  3. 编译运行

源码解读

架构设计

Alt text

模块介绍

相机采集:摄像头、麦克风采集数据样本(YUV/PCM),相机功能设置。

样本转换:将采集的数据样本转换成图像

画面预览:将图像渲染到画布

编辑模块:添加美颜、滤镜、动态贴纸等

录制:视频多段录制、回删等

素材模块

快速集成

功能概览

为了方便您快速集成,我们将特效相机逻辑封装在进阶使用类(TTPipeMediator)中,您只需控制采集时机即可。

使用类介绍

接口文件 功能
TTPipeMediator 进阶使用类
TTImageConvert 图像转换
TTAudioConvert 音频转换
TTPreviewManager 画面预览
TTRecordManager 视频录制
TTBeautyManager 美颜特效

使用说明

  1. 摄像头、麦克风采集数据样本(YUV/PCM)
  2. 将采集的数据样本转换成图像、音频加工
  3. 图像加工添加、更新美颜特效
  4. 将图像渲染到画布
  5. 发送图像合成视频

示例

// TTCameraMediator.m

- (TUPFPImage *)sendVideoSampleBuffer:(CMSampleBufferRef)sampleBuffer {
    NSInteger timestamp = [TTPipeMediator timestampWithSampleBuffer:sampleBuffer];
    [_queue runSync:^{
        TUPFPImage *fpImage = [self.imageConvert sendVideoSampleBuffer:sampleBuffer];
        // 前后处理: 美颜、滤镜等
        TUPFPImage *processFPImage = [self.beautyManager sendFPImage:fpImage];
        // 预览
        [self.previewManager update:self.outputFPImage];
        // 录制
        [self.recordManager sendFPImage:self.outputFPImage timestamp:timestamp];

        self.outputFPImage = processFPImage;
    }];
    return self.outputFPImage;
}

功能设置

// TTPipeMediator.h
/**
 * 初始化预览画面
 * @param containerView 容器视图
 */
- (instancetype)initWithContainer:(UIView *)containerView;

/**
 * 向 SDK 发送采集的视频数据 并返回处理过图像
 * @param sampleBuffer 视频样本 yuv/bgra
 * @return 返回处理过的图像
 */
- (TUPFPImage *)sendVideoSampleBuffer:(CMSampleBufferRef)sampleBuffer;
/**
 * 向 SDK 发送采集的音频数据
 * @param sampleBuffer 音频样本 pcm
 */
- (void)sendAudioSampleBuffer:(CMSampleBufferRef)sampleBuffer;

/**
 * 向 SDK 发送播放的音频数据
 * @param bufferList 需要赋值音频数据
 */
- (void)sendAudioPlayBufferList:(AudioBufferList)bufferList;

/**
 * 设置视频像素格式
 * @param pixelFormat yuv bgra
 */
- (void)setPixelFormat:(TTVideoPixelFormat)pixelFormat;

/**
 * 设置样本输出分辨率(size 归一化)
 */
- (void)setOutputSize:(CGSize)outputSize;

/**
 * 设置变声
 * @param soundPitchType 变声类型
 */
- (void)setSoundPitchType:(TTVideoSoundPitchType)soundPitchType;

/**
 * 设置背景音乐
 * @param path 音乐路径
 */
- (void)setBGM:(NSString *)path;

// MARK: - Editor
////////////////////////////////////////////////////////////////////////////////////////////////
/**
 * 获取美颜对象
 * 美肤、微整形、美妆、滤镜、动态贴纸、哈哈镜
 * @return 获取美颜对象管理器
 */
- (TTBeautyManager *)getBeautyManager;

/**
 * 设置合拍
 * @param direction 布局
 * @param videoPath 视频地址
 */
- (void)setJoiner:(TTJoinerDirection)direction videoPath:(NSString *)videoPath;

// MARK: - Preview
////////////////////////////////////////////////////////////////////////////////////////////////

/**
 * 设置画面比例
 * @param aspectRatio full 3:4 1:1
 */
- (void)setAspectRatio:(TTVideoAspectRatio)aspectRatio;

/**
 * 设置画面背景颜色
 * @param backgroundColor 背景颜色
 */
- (void)setBackgroundColor:(UIColor *)backgroundColor;

/**
 * 拍照/截图
 */
- (UIImage *)snapshot;

// MARK: - Record
////////////////////////////////////////////////////////////////////////////////////////////////

/**
 * 设置视频录制的委托对象
 * @param recordDelegate TTRecordListener
 */
- (void)setRecordDelegate:(id<TTRecordListener>)recordDelegate;

/// start/resume recording
- (BOOL)startRecording;

/**
 * 暂停录制 每一次暂停录制都会生成一个视频片段
 */
- (void)pauseRecord;

/**
 * 结束录制
 */
- (void)stopRecord;

/**
 * 删除当前录制视频最后一片段
 */
- (void)deleteLastRecordPart;

/**
 * 设置录制速率
 * @param recordSpeed 录制速率
 */
- (void)setRecordSpeed:(TTVideoRecordSpeed)recordSpeed;

/**
 * 获取录制总进度
 */
- (CGFloat)getRecordingProgress;


/**
 * 设置是否静音录制,默认为NO
 * @param isMute 静音状态
 */
- (void)setMute:(BOOL)isMute;

/// 销毁
- (void)destory;

单功能集成

相机采集

功能概览

摄像头、麦克风采集数据样本(YUV/PCM)。包括摄像头切换、闪光灯、画面对焦、分辨率及码率设置等

使用类介绍

接口文件 功能
TuCamera 相机采集功能
TTAudioUnitManager 回声消除音频录制

使用说明

  1. 配置参数
  2. 开始运行
  3. 监听回调并发送样本

示例

@interface TTViewController () <TuCameraAudioDataOutputDelegate, TuCameraVideoDataOutputDelegate>

@property(nonatomic, strong) TuCamera *capture;        //相机

@end

@implementation TTViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setupCapture];
}

//启动相机
- (void)setupCapture {
    _capture = [[TuCamera alloc] init];
    // 是否支持双指缩放来调节焦距
    _capture.enableZoom = YES;
    // 准备初始化相机
    [_capture prepare];

    _capture.audioDataOutputDelegate = self;
    _capture.videoDataOutputDelegate = self;
}

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    // 相机启动预览
    [self.capture startPreview];
}

- (void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    // 相机停止预览
    [self.capture pausePreview];
}

// MARK: - TuCameraVideoDataOutputDelegate、TuCameraAudioDataOutputDelegate
/**
 * 相机采集视频回调
 * @param sampleBuffer 相机采集返回的视频数据
 */
- (void)onTuCameraDidOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer {

}
/**
 * 麦克风采集音频回调
 * @param bufferList 麦克风采集返回的音频数据
 */
- (void)onTuCameraDidOutputAudioSampleBuffer:(CMSampleBufferRef)sampleBuffer {

}

/**
 * 麦克风采集音频回调
 * @param bufferList 麦克风采集返回的音频数据
 */
- (void)onTuCameraDidOutputPlayBufferList:(AudioBufferList)bufferList {

}

@end

功能设置

调整相机参数

#import<TuCamera/TuCamera.h>
/** 当前相机状态 */
@property(nonatomic, readonly) TuCameraState status; 
/** 设置相机前后位置 */
@property(nonatomic) AVCaptureDevicePosition devicePosition; 
// 摄像头输出方向和镜像设置
@property(nonatomic, assign) AVCaptureVideoOrientation frontCameraOrientation;
@property(nonatomic, assign) BOOL frontCameraMirrored;
@property(nonatomic, assign) AVCaptureVideoOrientation backCameraOrientation;
@property(nonatomic, assign) BOOL backCameraMirrored;
/** 设置采集分辨率 */
@property(nonatomic) AVCaptureSessionPreset sessionPreset;
 /** 设置帧率 */
@property(nonatomic) NSInteger fps;
 /** 开启/关闭 闪光灯 */
@property(nonatomic) AVCaptureFlashMode flashMode;
@property(nonatomic) AVCaptureTorchMode torchMode;
/** 是否允许使用聚焦拍摄 */
@property(nonatomic, assign) BOOL allowFocusToShot; 
/** 是否开启自动聚焦 */ 
@property(nonatomic) BOOL enableAutoFocus; 
/** 禁用系统拍照声音 (默认:false) */
@property(nonatomic) BOOL disableCaptureSound; 

/** 准备初始化相机 [是否初始化成功] */
- (BOOL)prepare; 
/** 开始预览  [是否启动摄像头成功] */
- (BOOL)startPreview; 
/** 暂停预览 [是否成功暂停预览] */
- (BOOL)pausePreview; 
/** 恢复预览  [是否成功恢复预览] */
- (BOOL)resumePreview;
/** 停止预览 */
- (void)stopPreview; 
/** 拍摄照片 [是否开始拍摄] */
- (BOOL)shotPhoto; 
/** 切换前后摄像头 [是否启动摄像头成功] */
- (BOOL)rotateCamera; 
/** 设置曝光强度 */
- (BOOL)setExposureBias:(float)percent;
/** 是否支持闪光灯 */
- (BOOL)isFlashModeSupport:(AVCaptureFlashMode)mode;
- (BOOL)isTorchModeSupport:(AVCaptureTorchMode)mode;

图像转换

功能概览

将采集的数据样本转换成 FPImage。

使用类介绍

接口文件 功能
TTImageConvert 样本转换
TUPFPImage 图像结构

使用说明

  1. 创建样本转换会话
  2. 向 SDK 发送采集的数据样本
  3. 接收返回图像
// TTProcessManager.h

/**
 * 向 SDK 发送采集的视频数据 返回图像
 * @param sampleBuffer 视频样本
 */
- (TUPFPImage *)sendVideoSampleBuffer:(CMSampleBufferRef)sampleBuffer;

/**
 * 向 SDK 发送采集的视频数据 返回图像
 * @param pixelBuffer 视频样本
 */
- (TUPFPImage *)sendVideoPixelBuffer:(CVPixelBufferRef)pixelBuffer;
/**
 * 向 SDK 发送采集的视频数据 返回图像
 * @param pixelBuffer 视频样本
 * @param timestamp 连续时间戳
 * @param rotation 旋转方向
 * @param flip 是否上下镜像
 * @param mirror 是否左右镜像
 */
- (TUPFPImage *)sendVideoPixelBuffer:(CVPixelBufferRef)pixelBuffer withTimestamp:(int64_t)timestamp rotation:(int)rotation flip:(BOOL)flip mirror:(BOOL)mirror;

功能设置

像素格式、采样分辨率

/**
 * 设置视频像素格式
 * @param pixelFormat yuv bgra
 */
- (void)setPixelFormat:(TTVideoPixelFormat)pixelFormat;

/// 设置样本输出分辨率(size 归一化)
- (void)setOutputSize:(CGSize)outputSize;

//对象销毁
- (void)destory;

音频转换

功能概览

将采集的数据样本添加变速、变调、混音等。

使用类介绍

接口文件 功能
TTAudioConvert 音频转换

使用说明

  1. 创建样本转换会话并指定委托
  2. 向 SDK 发送采集的数据样本
  3. 代理接收pcm回调
// TTAudioConvert.h

@protocol TTAudioConvertDelegate <NSObject>
@optional

/**
 * 转换回调
 * @param audioConvert 转换会话
 * @param pcm pcm buffer
 * @param len 数据长度
 */
- (void)audioConvert:(TTAudioConvert *)audioConvert didOutputPCMData:(void *)pcm len:(size_t)len;
@end

@interface TTAudioConvert : NSObject

/**
 * 初始化转换会话
 * @param delegate 委托
 * @param queue 操作队列
 */
- (instancetype)initWithDelegate:(id<TTAudioConvertDelegate>)delegate delegateQueue:(TUPDispatchQueue *)queue NS_DESIGNATED_INITIALIZER;

/**
 * 向 SDK 发送采集的音频数据
 * @param sampleBuffer 音频样本 pcm
 */
- (void)sendAudioSampleBuffer:(CMSampleBufferRef)sampleBuffer;

功能设置

/**
 * 向 SDK 发送播放的音频数据 需要添加背景音乐
 * @param bufferList 需要赋值的音频数据
 */
- (void)sendAudioPlayBufferList:(AudioBufferList)bufferList;

/**
 * 设置变声
 * @param soundPitchType 变声类型
 */
- (void)setSoundPitchType:(TTVideoSoundPitchType)soundPitchType;

/**
 * 设置背景音乐
 * path  背景音乐路径
 */
- (void)setBGM:(NSString *)path;

/**
 * 开始混音
 * @param startTime 音乐播放起始时间
 */
- (void)startMixerFromTime:(NSInteger)startTime;

/// 暂停播放背景音乐
- (void)pauseBGM;

/**
 * 停止播放背景音乐
 */
- (void)stopBGM;

/// 销毁
- (void)destory;

画面预览

功能预览

将TUPFPImage渲染到画布

使用类介绍

接口文件 功能
TTPreviewManager 画面预览
TUPFPImage 图像

使用说明

  1. 初始化预览画布,设置容器视图
  2. 更新预览画面
// TTPreviewManager.h

/**
 * 初始化预览画布
 * @param containerView 容器视图
 */
- (instancetype)initWithContainer:(UIView *)containerView NS_DESIGNATED_INITIALIZER;

/**
 * 更新预览画面
 * @param fpImage 图像显示
 */
- (void)update:(TUPFPImage *)fpImage;

功能设置

画面比例、背景颜色、拍照/截图

// TTPreviewManager.h

/**
 * 设置画面比例
 * @param aspectRatio full 3:4 1:1
 */
- (CGRect)setAspectRatio:(TTVideoAspectRatio)aspectRatio;

/**
 * 设置画面背景颜色
 * @param backgroundColor 背景颜色
 */
- (void)setBackgroundColor:(UIColor *)backgroundColor;

/// 拍照/截图
- (UIImage *)snapshot;

/// 销毁
- (void)destory;

美颜

功能预览

在预览、视频录制的过程中,您可以给画面设置各种特效。

使用类介绍

接口文件 功能
TTBeautyManager 美颜特效
TUPFPImage 图像

使用说明

  1. 初始化美颜会话
  2. 向 美颜 发送图像
  3. 返回添加过特效的图像
/**
 * 初始化美颜会话
 * @param queue 操作队列
 */
- (instancetype)initWithQueue:(TUPDispatchQueue *)queue NS_DESIGNATED_INITIALIZER;
/**
 * 向 美颜 发送图像 并返回编辑处理后的图像
 * @param fpImage 图像
 */
- (TUPFPImage *)sendFPImage:(TUPFPImage *)fpImage;
/**
 * 添加特效
 * @param effectType 特效类型
 */
- (void)addEffect:(TTEffectType)effectType;
/**
 * 移除特效
 * @param effectType 特效类型
 */
- (void)removeEffect:(TTEffectType)effectType;
/**
 * 重置特效
 * @param effectType 特效类型
 */
- (void)resetEffect:(TTEffectType)effectType;

/// 销毁
- (void)destory;

功能设置

// TTBeautyManager.h

// MARK: - 美肤

/**
 * 设置美肤(磨皮)算法
 * @param skinStyle 自然 极致 新美颜
 */
- (void)setSkinStyle:(TTSkinStyle)skinStyle;

/// 设置磨皮级别 取值范围0 - 1
- (void)setSmoothLevel:(float)level;

/// 设置美白级别 取值范围0 - 1
- (void)setWhiteningLevel:(float)level;

/// 设置红润级别 取值范围0 - 1
- (void)setRuddyLevel:(float)level;

/// 设置锐化级别 取值范围0 - 1
- (void)setSharpenLevel:(float)level;

// MARK: - 微整形

/// 设置大眼级别 取值范围0 - 1
- (void)setEyeEnlargeLevel:(float)level;

/// 设置瘦脸级别 取值范围0 - 1
- (void)setCheekThinLevel:(float)level;

/// 设置窄脸级别 取值范围0 - 1
- (void)setCheekNarrowLevel:(float)level;

/// 设置小脸级别 取值范围0 - 1
- (void)setFaceSmallLevel:(float)level;

/// 设置瘦鼻级别 取值范围0 - 1
- (void)setNoseWidthLevel:(float)level;

/// 设置长鼻级别 取值范围0 - 1
- (void)setNoseHeightLevel:(float)level;

/// 设置嘴型级别 取值范围-1 - 1
- (void)setMouthWidthLevel:(float)level;

/// 设置唇厚级别 取值范围-1 - 1
- (void)setLipsThicknessLevel:(float)level;

/// 设置瘦人中级别 取值范围-1 - 1
- (void)setPhilterumThicknessLevel:(float)level;

/// 设置细眉级别 取值范围-1 - 1
- (void)setBrowThicknessLevel:(float)level;

/// 设置眉高级别 取值范围-1 - 1
- (void)setBrowHeightLevel:(float)level;

/// 设置下巴(拉伸或收缩)级别 取值范围-1 - 1
- (void)setChinThicknessLevel:(float)level;

/// 设置下颌骨级别 取值范围0 - 1
- (void)setCheekLowBoneNarrowLevel:(float)level;

/// 设置眼角级别 取值范围-1 - 1
- (void)setEyeAngleLevel:(float)level;

/// 设置开内眼角级别 取值范围0 - 1
- (void)setEyeInnerConerLevel:(float)level;

/// 设置开外眼角级别 取值范围0 - 1
- (void)setEyeOuterConerLevel:(float)level;

/// 设置眼距级别 取值范围-1 - 1
- (void)setEyeDistanceLevel:(float)level;

/// 设置眼移动级别 取值范围-1 - 1
- (void)setEyeHeightLevel:(float)level;

/// 设置发际线级别 取值范围-1 - 1
- (void)setForeheadHeightLevel:(float)level;

/// 设置瘦颧骨级别 取值范围0 - 1
- (void)setCheekBoneNarrowLevel:(float)level;

// MARK: - 微整形改造

/// 设置双眼皮级别 取值范围0 - 1
- (void)setEyelidLevel:(float)level;

/// 设置卧蚕级别 取值范围0 - 1
- (void)setEyemazingLevel:(float)level;

/// 设置白牙级别 取值范围0 - 1
- (void)setWhitenTeethLevel:(float)level;

/// 设置亮眼级别 取值范围0 - 1
- (void)setEyeDetailLevel:(float)level;

/// 设置祛黑眼圈级别 取值范围0 - 1
- (void)setRemovePouchLevel:(float)level;

/// 设置祛法令纹级别 取值范围0 - 1
- (void)setRemoveWrinklesLevel:(float)level;

// MARK: - 美妆

/// 设置口红开关
- (void)setLipEnable:(BOOL)enable;

/// 设置口红样式
/// @param style 水润 滋润 雾面
- (void)setLipStyle:(TTBeautyLipstickStyle)style;

/// 设置口红不透明度
- (void)setLipOpacity:(float)opacity;

/// 设置口红贴纸id
- (void)setLipSticker:(float)idt;


/// 设置腮红开关
- (void)setBlushEnable:(BOOL)enable;

/// 设置腮红不透明度
- (void)setBlushOpacity:(float)opacity;

/// 设置腮红贴纸id
- (void)setBlushSticker:(float)idt;


/// 设置眉毛开关
- (void)setBrowEnable:(BOOL)enable;

/// 设置眉毛样式
/// @param style 雾眉 雾根眉
- (void)setBrowStyle:(TTBeautyEyebrowStyle)style;

/// 设置眉毛不透明度
- (void)setBrowOpacity:(float)opacity;

/// 设置眉毛贴纸id
- (void)setBrowSticker:(float)idt;


/// 设置眼影开关
- (void)setEyeshadowEnable:(BOOL)enable;

/// 设置眼影不透明度
- (void)setEyeshadowOpacity:(float)opacity;

/// 设置眼影贴纸id
- (void)setEyeshadowSticker:(float)idt;


/// 设置眼线开关
- (void)setEyelineEnable:(BOOL)enable;

/// 设置眼线不透明度
- (void)setEyelineOpacity:(float)opacity;

/// 设置眼线贴纸id
- (void)setEyelineSticker:(float)idt;


/// 设置睫毛开关
- (void)setEyelashEnable:(BOOL)enable;

/// 设置睫毛不透明度
- (void)setEyelashOpacity:(float)opacity;

/// 设置睫毛贴纸id
- (void)setEyelashSticker:(float)idt;


/// 设置修容开关
- (void)setFacialEnable:(BOOL)enable;

/// 设置修容不透明度
- (void)setFacialOpacity:(float)opacity;

/// 设置修容贴纸id
- (void)setFacialSticker:(float)idt;

// MARK: - 滤镜

/// 设置滤镜
/// @param code 通过 code 在 SDK 内部映射表获取滤镜
- (void)setFilter:(NSString *)code;

/// 设置滤镜的强度
- (void)setFilterStrength:(float)strength;

// MARK: - 动态贴纸、哈哈镜
/// 设置动态贴纸
/// @param idt 贴纸id
- (void)setLiveSticker:(NSInteger)idt;

/// 设置哈哈镜
/// @param monsterStyle TTMonsterStyle
- (void)setMonsterStyle:(TTMonsterStyle)monsterStyle;

// MARK: - 合拍

/// 设置合拍
/// @param direction 布局
/// @param videoPath 视频地址
- (void)setJoiner:(TTJoinerDirection)direction videoPath:(NSString *)videoPath;

/// 更新合拍 布局
/// @param direction 布局
- (void)updateJoinerDirection:(TTJoinerDirection)direction;

/// 设置合拍变速
/// @param speed 速度
/// @param startTime 开始时间
- (void)setJoinerSpeed:(TTVideoRecordSpeed)speed startTime:(NSInteger)startTime;

/// 播放/暂停合拍素材
- (void)playJoiner:(BOOL)playing;

/// 设置合拍开始播放时间
- (void)setJoinerStartTime:(NSInteger)startTime;

/// 获取合拍布局
- (CGRect)getJoinerVideoRect;

录制

功能预览

视频分段录制、变速录制、视频合成保存等

使用类介绍

接口文件 功能
TTRecordManager 视频录制
TUPFPImage 图像

使用说明

  1. 配置录制参数
  2. 开始录制
  3. 向 录制 发送图像
  4. 完成录制
// TTRecordManager.h

/// 向 录制 发送fpImage
/// @param fpImage 图像
/// @param timestamp 时间戳
- (void)sendFPImage:(TUPFPImage *)fpImage timestamp:(NSInteger)timestamp;

/// 向 录制 发送pcm
/// @param pcm 音频
/// @param len 数据长度
- (void)sendPCMData:(void *)pcm len:(size_t)len;


/// start/resume recording
- (BOOL)record;

/// 暂停录制 每一次暂停录制都会生成一个视频片段
- (void)pauseRecord;

/// 结束录制 close the file.
- (void)stopRecord;

/// 取消当前录制
- (void)cancleRecording;

功能设置

录制速度、声音设置、设置水印

// TTRecordManager.h

/// 最小录制时长 单位: ms 默认: 3000
@property(nonatomic) NSInteger minDuration;
/// 最大录制时长 单位: ms 默认: 15000
@property(nonatomic) NSInteger maxDuration;
/// 音频声道
@property(nonatomic) int channels;
/// 音频采样率
@property(nonatomic) int sampleRate;

/// 设置录制速率
- (void)setRecordSpeed:(TTVideoRecordSpeed)recordSpeed;

/// 获取录制速率
- (TTVideoRecordSpeed)getRecordSpeed;

/// 设置全局水印
/// @param waterMark 全局水印图片
/// @param position 水印位置
- (void)setWaterMark:(UIImage *)waterMark position:(TTVideoWaterMarkPosition)position;

/// 设置是否静音录制
- (void)setMute:(BOOL)isMute;

多段录制

// TTRecordManager.h

/// 获取录制总时长 单位: ms
- (NSInteger)getDuration;

/// 获取当前录制所有视频片段路径
- (NSArray<NSString *> *)getVideoPathList;

/// 删除当前录制视频最后一片段
- (void)deleteLastPart;

/// 删除当前录制视频所有片段
- (void)deleteAllParts;

  • 快速搭建
  • 源码解读
  • 快速集成
  • 单功能集成
  • 在线技术支持
  • 专业售前售后团队
  • 版本定期更新
  • 全方位解决方案

商务合作

  • 177-6716-7529
  • 2969573855
  • sales@tusdk.com
  • 浙江省 杭州市 西湖区 西斗门9号 福地创业园1号楼3楼301室

关注我们

qrcode

©2019-2025 TUTUCLOUD. All Rights Reserved. 杭州元凡视觉智能科技有限公司 | 浙ICP备14040447号-1 | 浙公网安备33010602001649号

  • 177-6716-7529
  • sales@tusdk.com
  • 2969573855