|
|
日期:2019-11-14
|
|
|
|
|
|
# 1.概述
|
|
|
iOS短视频SDK是适用于iOS平台的短视频SDK。使用此SDK可以实现短视频相关功能。
|
|
|
## 1.1 功能特性
|
... | ... | @@ -17,6 +15,7 @@ iOS短视频SDK是适用于iOS平台的短视频SDK。使用此SDK可以实现 |
|
|
| 气泡文字 | 支持根据时段,位置添加气泡文字 |
|
|
|
| 音频插入 | 支持对视频插入背景音乐 |
|
|
|
| 视频大小修改 | 支持修改视频分辨率 |
|
|
|
| 图片合成视频 | 支持多图片合成视频,添加动效 |
|
|
|
|
|
|
## 1.2 阅读对象
|
|
|
本文档为技术文档,需要阅读者:
|
... | ... | @@ -904,7 +903,85 @@ if (!self.canEdit) { |
|
|
+(CGFloat)dw_fileSizeAtPath:(NSString*)filePath;
|
|
|
```
|
|
|
|
|
|
## 4.11 Demo具体使用
|
|
|
## 4.11 图片合成视频功能的使用
|
|
|
通过多张图片及图片特效,转场特效生成一段视频。使用步骤如下:
|
|
|
|
|
|
### 4.11.1 通过选取的图片,图片特效,转场特效等参数,生成DWPictureNodeModel对象
|
|
|
```
|
|
|
//图片特效通过DWPictureAnimation类生成
|
|
|
/// 返回图片特效动画数据
|
|
|
/// @param style 特效样式
|
|
|
/// @param pictureDuration 图片特效持续时间
|
|
|
/// @param frontTransitionDuration 转场动画持续时间
|
|
|
/// @param videoSize 合成视频的大小,左滑,右滑特效需要。
|
|
|
/// @param isLast 是否是最后一张图片
|
|
|
+(NSArray *)pictureAnimationCreateWithStyle:(DWPictureAnimationStyle)style
|
|
|
PictureDuration:(CGFloat)pictureDuration
|
|
|
FrontTransitionDuration:(CGFloat)frontTransitionDuration
|
|
|
VideoSize:(CGSize)videoSize
|
|
|
isLast:(BOOL)isLast;
|
|
|
|
|
|
//转场特效通过DWTransitionAnimation类生成
|
|
|
/// 返回转场动画特效
|
|
|
/// @param style 转场动画样式
|
|
|
/// @param beginTime 特效持续时间
|
|
|
/// @param duration 转场动画持续时间
|
|
|
/// @param videoSize 合成视频的大小
|
|
|
/// @param isFront 转场特效是否在图片之前
|
|
|
+(NSArray *)transitionAnimationCreateWithStyle:(DWTransitionAnimationStyle)style
|
|
|
BeginTime:(CGFloat)beginTime
|
|
|
Duration:(CGFloat)duration
|
|
|
VideoSize:(CGSize)videoSize
|
|
|
isFront:(BOOL)isFront;
|
|
|
|
|
|
//生成圆形动画
|
|
|
+(NSArray *)circleMaskAnimationCreateWithDuration:(CGFloat)duration
|
|
|
VideoSize:(CGSize)videoSize;
|
|
|
|
|
|
|
|
|
//DWPictureNodeModel节点对象的创建
|
|
|
DWPictureNodeModel * pictureNodeModel = [[DWPictureNodeModel alloc]init];
|
|
|
pictureNodeModel.image = ...; //图片,非空
|
|
|
pictureNodeModel.beginTime = ...; //图片特效起始时间
|
|
|
pictureNodeModel.duration = ...; //图片特效持续时间
|
|
|
pictureNodeModel.animations = ...; //图片特效及转场特效,DWPictureAnimation,DWTransitionAnimation 生成的特效数组集合。
|
|
|
pictureNodeModel.maskLayer = ...; //图层layer的mask图层,用于辅助完成动画效果
|
|
|
pictureNodeModel.maskAnimationBeginTime = ...; //mask图层特效开始时间
|
|
|
pictureNodeModel.maskAnimationDuration = ...; //mask图层特效持续时间
|
|
|
pictureNodeModel.maskAnimations = ...; //mask图层的特效
|
|
|
pictureNodeModel.isCover = ...; //图层layer的添加顺序
|
|
|
|
|
|
详细实现逻辑,可参考DWShortPictureCompositeViewController中-(NSArray *)resetPictureNodeAniationsWithSize:(CGSize)aniationsSize AndCreateVideo:(BOOL)isCreateVideo;方法的实现逻辑。
|
|
|
|
|
|
```
|
|
|
|
|
|
###4.11.2 创建DWPictureCompositeInstrument对象,设置适当的参数,生成视频
|
|
|
```
|
|
|
//根据DWPictureNodeModel节点对象,初始化视频生成器
|
|
|
DWPictureCompositeInstrument * instrument = [[DWPictureCompositeInstrument alloc]init];
|
|
|
instrument.videoSize = ...; //视频分辨率,非空
|
|
|
instrument.videoBackgroundColor = ...; //合成视频底色,默认纯黑
|
|
|
instrument.outPath = ...; 视频导出路径,非空
|
|
|
instrument.pictureNodeModels = ...; //步骤1所生成的节点对象数组
|
|
|
instrument.videoDuration = ...;//视频总时间
|
|
|
//开始生成视频
|
|
|
[instrument startComposite];
|
|
|
//成功or失败回调
|
|
|
instrument.complete = ^(NSError *error, NSURL *completeFileURL) {
|
|
|
if (error) {
|
|
|
//视频生成失败处理及原因
|
|
|
return;
|
|
|
}
|
|
|
//视频生成成功
|
|
|
...
|
|
|
};
|
|
|
|
|
|
详细实现逻辑,可参考DWShortPictureCompositeViewController中-(void)nextButtonAction方法。
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
## 4.12 Demo具体使用
|
|
|
Demo是示例源码,可直接用Xcode运行。Demo的设计旨在展示SDK各项功能的使用方法,如果希望应用获得更好的使用体验,要根据需求自行更改。
|
|
|
如果在使用SDK过程中遇到其他问题请联系CC客服进行反馈。
|
|
|
|
... | ... | @@ -914,4 +991,3 @@ Demo是示例源码,可直接用Xcode运行。Demo的设计旨在展示SDK各 |
|
|
[https://github.com/CCVideo/VOD_iOS_ShortVideo_SDK/tree/master/doc/api](https://github.com/CCVideo/VOD_iOS_ShortVideo_SDK/blob/master/doc/api)
|
|
|
|
|
|
# 6.Q&A |
|
|
|