最近更新时间:2023.11.23 10:25:29
首次发布时间:2022.10.17 21:06:08
本文为您介绍视频上传的进阶功能。
调用 setPoster
设置视频自动抽帧时间点,单位为秒。设置成功后,上传 SDK 将根据您设置的固定时间点截取视频帧,作为视频的封面图。示例代码如下:
// 单位为秒,默认值为 0 public void setPoster(float posterTime)
如想开启断点续传功能,您需要调用 setSDKConfigDir
和 setDiskResumeOption
。开启断点续传后,用户在您的应用中上传文件时,如果发生强制退出应用等情况导致上传中断,下次上传同一个文件时,上传 SDK 会自动获取断点,并从断点处继续上传,从而节省上传时间。
示例代码如下:
// 指定断点续传配置文件存放目录,上传 SDK 需要有读写权限,初始化后全局设置 1 次即可。 BDUploadUtil.setSDKConfigDir(dir) // 开启断点续传,每个 Uploader 实例都需设置。 mUploader.setDiskResumeOption(1);
说明
通过 Reader
设置的上传文件不支持断点续传。
如果您的业务场景无需实时抽取 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,调用 setTemplateId
方法传入 templateId
参数,示例代码如下:
// 设置工作流模板 ID mUploader.setTemplateId(templateId);
参数 | 类型 | 描述 |
---|---|---|
templateId | String | 工作流模板 ID。登录视频点播控制台,进入空间,在媒体处理设置 > 工作流模板页面,获取工作流模板 ID。具体详见工作流模板。 |