本文为您介绍iOS端短视频SDK视频上传的功能以及流程说明。

概述

  • 3.32.0及以前版本短视频SDK,强依赖上传SDK,并封装了核心类AliyunVodPublishManager进行视频及封面上传。
  • 3.33.0及以后版本短视频SDK,不再依赖上传SDK,也不提供核心类AliyunVodPublishManager,如需上传,请使用上传SDK进行视频及封面的上传。

版本支持

版本 是否支持
专业版 支持
标准版 支持
基础版 不支持

视频上传流程

视频上传
说明
  • 上传前需要获取上传地址和凭证,具体内容请参见获取上传地址和凭证
  • 如果需要将短视频SDK中编辑后的视频上传到视频点播,则在上传前需要先将视频合成导出,并将生成的视频添加视频封面后才能上传。

3.33.0及以后版本

使用上传SDK进行上传视频及封面。

  1. 集成上传SDK。

    具体内容请参见集成SDK

    pod 'VODUpload'
  2. 上传文件。

    使用上传地址和凭证方式对视频封面及生成的视频进行上传,具体内容请参见文件上传

3.32.0及以前版本

使用核心类AliyunVodPublishManager进行上传。

初始化

初始化上传实例,设置上传回调。
_vodManager = [AliyunVodPublishManager new];
 
//设置上传回调
_vodManager.uploadCallback = self;

开始上传

上传视频、图片等媒体文件。
//通过调用获取视频上传地址和凭证CreateUploadVideo或获取图片上传地址和凭证CreateUploadImage接口后将返回以下参数用于上传视频或图片
//videoPath:视频文件地址,请与获取上传地址和凭证时输入的视频文件地址保持一致
//imagePath:图片文件地址,请与获取上传地址和凭证时输入的视频文件地址保持一致
//uploadAddress:上传地址
//uploadAuth:上传凭证,凭证过期后请参考下文刷新上传凭证
//上传视频
int ret = [_vodManager uploadVideoWithPath:videoPath uploadAddress:uploadAddress uploadAuth:uploadAuth];
//上传图片
int ret = [_vodManager uploadImageWithPath:imagePath uploadAddress:uploadAddress uploadAuth:uploadAuth];

刷新上传凭证

因上传凭证带有时效性(UploadAuth字段的Expiration变量赋予了上传授权的过期时间,默认有效期为3000秒),所以当上传凭证过期后,需要在过期回调onUploadTokenExpired方法中重新获取上传凭证上传,更多信息,请参考刷新视频上传凭证
//刷新上传凭证,uploadAuth:上传凭证
[AliyunVodPublishManager refreshWithUploadAuth:vodUploadAuth];

处理上传回调

//上传成功回调
- (void)publishManagerUploadSuccess:(AliyunVodPublishManager *)manager {
}

//上传失败回调
- (void)publishManager:(AliyunVodPublishManager *)manager uploadFailedWithCode:(NSString *)code message:(NSString *)message {
}

//上传进度回调 
- (void)publishManager:(AliyunVodPublishManager *)manager uploadProgressWithUploadedSize:(long long)uploadedSize totalSize:(long long)totalSize  {
}


//上传token过期 
- (void)publishManagerUploadTokenExpired:(AliyunVodPublishManager *)manager {
}


//上传超时,开始重试
- (void)publishManagerUploadRetry:(AliyunVodPublishManager *)manager {
}


//重试结束,继续上传
- (void)publishManagerUploadRetryResume:(AliyunVodPublishManager *)manager {
}

上传控制(可选)

上传过程中可按需暂停、继续以及取消上传。
//暂停上传
[AliyunVodPublishManager pauseUpload];
//继续上传
[AliyunVodPublishManager resumeUpload];
//取消上传
[AliyunVodPublishManager cancelUpload];