You need to enable JavaScript to run this app.
导航

进阶功能

最近更新时间2023.11.23 10:25:29

首次发布时间2022.10.17 21:06:08

本文为您介绍视频上传的进阶功能。

设置封面图抽帧时间

调用 setPoster 设置视频自动抽帧时间点,单位为秒。设置成功后,上传 SDK 将根据您设置的固定时间点截取视频帧,作为视频的封面图。示例代码如下:

// 单位为秒,默认值为 0
public void setPoster(float posterTime)

开启断点续传

如想开启断点续传功能,您需要调用 setSDKConfigDirsetDiskResumeOption。开启断点续传后,用户在您的应用中上传文件时,如果发生强制退出应用等情况导致上传中断,下次上传同一个文件时,上传 SDK 会自动获取断点,并从断点处继续上传,从而节省上传时间。

示例代码如下:

// 指定断点续传配置文件存放目录,上传 SDK 需要有读写权限,初始化后全局设置 1 次即可。
BDUploadUtil.setSDKConfigDir(dir)

// 开启断点续传,每个 Uploader 实例都需设置。
mUploader.setDiskResumeOption(1);

说明

通过 Reader 设置的上传文件不支持断点续传。

设置全异步抽取 Meta

如果您的业务场景无需实时抽取 Meta,则可以使用全异步抽取 Meta 的能力,提升上传速度。您需要调用 setGetMetaMode 并将模式设为 GET_META_ASYNC。示例代码如下:

mUploader.setGetMetaMode(GET_META_ASYNC); 

自定义上传配置

上传 SDK 还支持分片上传等功能,您可以设置分片大小、开启并行上传的线程数等能力。实现的代码示例如下所示。

// 分片上传设置分片大小,单位为 byte,默认值为 512 * 1024
public void setSliceSize(int size)

// 开启并行上传的线程数,默认值为 1
public void setSocketNum(int num)  

// 单次 TCP 建连超时,单位为 ms,默认值为 5000
public void setTcpOpenTimeOutMilliSec(int openTimeOutMilliSec) 

// 单个分片传输超时,单位为 s,默认值为 40
public void setRWTimeout(int timeOut) 

// 总建连超时,单位为 s,默认值为 70
public void setMaxFailTime(int maxTime)

// 系统 socket 单次读写超时,单位为 s,默认值为 10
public void setTranTimeOutUnit(int tranTimeOutUnit)

// 复用连接的超时时间,防止老连接质量变差,导致的上传速度变慢,单位为 s,默认值为 6
public void setAliveMaxFailTime(int maxFailTime)

// 分片重试次数,默认值为 2
public void setSliceReTryCount(int retryCount) 

// 文件级别的重试次数,默认值为 3
public void setFileRetryCount(int retryCount)

// 开启 HTTPS,设置 1 为全开启
public void setEnableHttps(int isEnableHttps)

设置回调透传参数

调用 setServerParameter 设置回调透传参数。该参数值会通过 FileUploadComplete 回调中的 CallbackArgs 参数返回给您的服务端。示例代码如下:

// 需要携带的自定义参数,例如:"appid=123&did=123456&uid=12345&Region=xxx&StoreRegion=xxx"
public void setServerParameter(String value)

设置工作流模板 ID

上传视频支持设置工作流模板 ID,调用 setTemplateId 方法传入 templateId 参数,示例代码如下:

// 设置工作流模板 ID
mUploader.setTemplateId(templateId);
参数类型描述
templateIdString工作流模板 ID。登录视频点播控制台,进入空间,在媒体处理设置 > 工作流模板页面,获取工作流模板 ID。具体详见工作流模板