文档中心 云点播 Android 上传SDK

Android 上传SDK

更新时间:2023-02-01 09:33:02

Android上传SDK

简介

云点播服务支持采用网宿云存储 Android版 上传SDK,用于嵌入到Android APP中,实现从移动手机端上传视频至云点播中。

SDK下载

下载地址
工程源码

快速集成

1)上传Token获取

详细见上传Token获取
!注意:Token必须使用云点播的接口获取,文件才能正常上传至云点播平台

2)初始化

初始化主要完成上传域名设置、分片上传并发数、响应超时时间、连接超时时间、重试次数。

1. 通过配置文件统一设置上传,管理域名
com.chinanetcenter.wcs.android.Config.java

public static final String PUT_URL = "upload.cloudv.haplat.net";

2. 在工程中设定参数
FileUploader.setUploadUrl("upload.cloudv.haplat.net");    
    ClientConfig config = new ClientConfig();
    
    // 设置分片上传并发数为10,不配置时默认值为5
    config.setMaxConcurrentRequest(10);
    FileUploader.setClientConfig(config);

3. 设置表单参数(文件名、mimeTupe等)
import com.chinanetcenter.wcs.android.api.ParamsConf;

conf = new ParamsConf();

// 原始文件名称
conf.fileName = '<原始文件>';

// 通过表单参数设置文件保存到云存储的名称
conf.keyName = <fileKey>;

// 通过表单参数设置文件的mimeType
conf.mimeType = '<mimeType>';
FileUploader.setParams(conf);

4. 自定义块、片的大小

块的大小,默认为4M,必须是4M的倍数,最大不能超过100M。 片的大小,默认为4M,必须是64K的倍数,最大不能超过块的大小。

 FileUploader.setBlockConfigs(8, 512); //设置块大小为8M,片大小为512KB

3)文件上传

普通上传
/**
 * 上传接口范例
 */
private void uploadFile(File srcFile) {
/**
         * UPLOADER_TOKEN-上传凭证
         * srcFile-本地待上传的文件
         */
        FileUploader.upload(UPLOADER_TOKEN, srcFile, new FileUploaderListener() {

            /** 上传成功回调 **/
            @Override
            public void onSuccess(int status, JSONObject responseJson) {
                Log.d(TAG, "responseJson : " + responseJson.toString());
            }

            /** 上传失败回调 **/
            @Override
            public void onFailure(OperationMessage operationMessage) {
                Log.e(TAG, "errorMessage : " + operationMessage.toString());
            }

            /** 上传进度回调 **/
            @Override
            public void onProgress(int bytesWritten, int totalSize) {
                Log.d(TAG, String.format("Progress %d from %d (%s)", bytesWritten, totalSize, (totalSize > 0) ? ((float) bytesWritten / totalSize) * 100 : -1));
            }
        });
    }

分片上传

移动端上传大文件需要耗费较长时间,一旦在传输过程中出现异常,文件内容需全部重传,影响用户体验,为避免这个问题,引进分片上传机制。
分片上传机制是将一个大文件切分成多个自定义大小的块,然后将这些块并行上传,如果某个块上传失败,客户端只需要重新上传这个块即可。
注意:每个块的最大大小不能超过100M;最小不能小于4M,否则将会采用默认4M去切分。

private static final long DEFAULT_BLOCK_SIZE = 1 * 1024 * 1024;
/**
* context-应用当前的上下文
* uploadToken-上传Token
* ipaFile-需要上传的文件
* DEFAULT_BLOCK_SIZE-块大小
*/
FileUploader.sliceUpload(context, uploadToken, ipaFile, DEFAULT_BLOCK_SIZE, new SliceUploaderListener() {
         
          /** 上传成功回调 **/
          @Override
          public void onSliceUploadSucceed(JSONObject jsonObject) {
            Log.d("CNCLog", "slice upload succeeded.");
          }

          /** 上传失败回调 **/
          @Override
          public void onSliceUploadFailured(OperationMessage operationMessage) {
            Log.d("CNCLog", "slice upload failured.");
          }

          /** 上传进度回调 **/
          @Override
          public void onProgress(long uploaded, long total) {
            Log.d("CNCLog", String.format(Locale.CHINA, "uploaded : %s, total : %s", uploaded, total));
          }
});
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!