视频上传

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

功能介绍

视频点播支持通过多种方式上传媒体文件(音频、视频、图片等)到点播存储,详细请参见媒体上传。其中,上传SDK提供了一套单独进行合成上传的功能接口,用来实现将编辑完的视频在另一界面合成上传,核心类AliyunIVodCompose封装了视频合成与上传功能,方便客户端更好地合成与上传视频。阿里云短视频SDK通过调用核心类AliyunIVodCompose以完成视频的上传。

版本支持

版本

是否支持

专业版

支持

标准版

支持

基础版

不支持

说明

基础版可以通过集成上传SDK去实现视频上传的功能。具体操作,请参见上传SDK概述

相关类功能

类名

功能

AliyunIVodCompose

上传功能核心类,包括初始化、上传视频或图片、更新上传凭证等核心上传功能。

AliyunComposeFactory

工厂类。

视频上传流程

视频上传
  1. 当客户端(用户APP/Web端)通过上传SDK上传视频或图片时,首先向用户应用服务器发起请求,获取上传地址和凭证。

  2. 应用服务器通过OpenAPI,向视频点播服务发起CreateUploadVideo(视频)或CreateUploadImage(图片)请求。

  3. 请求成功,则视频点播服务将返回上传地址、上传凭证、VideoId(视频)、ImageURL(图片)给用户应用服务器。

  4. 用户应用服务器返回上传地址和上传凭证给客户端。

  5. 客户端添加本地文件,并设置上传地址和凭证,开始上传到OSS Bucket。

  6. OSS返回上传结果。

初始化

初始化上传实例。代码中需要使用的参数详情,请参考接口文档。接口链接请参见相关类功能

//创建
AliyunComposeFactory.createAliyunVodCompose();

//初始化
AliyunIVodCompose.init(Context context);

获取上传地址及凭证

AliyunIVodCompose是通过上传地址和上传凭证上传,在上传之前,需要获取上传地址及上传凭证,详细操作请参见获取音视频上传地址和凭证获取图片上传地址和凭证

说明

此处只是在获取上传地址和凭证,并未开始上传,获取到上传地址和凭证后,需要再执行上传。

上传

上传视频、图片等媒体文件。代码中需要使用的参数详情,请参考接口文档。接口链接请参见相关类功能

//通过上传地址和上传凭证上传视频或图片
//videoPath:视频文件地址,请与获取上传地址和凭证时输入的视频文件地址保持一致 
//imagePath:图片文件地址,请与获取上传地址和凭证时输入的图片文件地址保持一致
//uploadAddress:上传地址
//uploadAuth:上传凭证,凭证过期后请参考下文刷新上传凭证
//aliyunVodUploadCallBack:上传的回调
//上传视频
AliyunIVodCompose.uploadVideoWithVod(String videoPath, String uploadAddress, String uploadAuth, AliyunIVodUploadCallBack aliyunVodUploadCallBack);

//上传图片
AliyunIVodCompose.uploadImageWithVod(String imagePath, String uploadAddress, String uploadAuth, AliyunIVodUploadCallBack aliyunVodUploadCallBack);

刷新上传凭证

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

//刷新上传凭证,uploadAuth:上传凭证
AliyunIVodCompose.refreshWithUploadAuth(String uploadAuth);

释放资源

上传完成后,销毁接口,释放资源。代码中需要使用的参数详情,请参考接口文档。接口链接请参见相关类功能

AliyunIVodCompose.release();

上传控制

上传过程中可按需暂停、继续及取消上传。代码中需要使用的参数详情,请参考接口文档。接口链接请参见相关类功能

//暂停上传
AliyunIVodCompose.pauseUpload();
//继续上传
AliyunIVodCompose.resumeUpload();
//取消上传
AliyunIVodCompose.cancelUpload();