全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
媒体转码

android版本

更新时间:2017-06-07 13:26:11

  • 环境要求

    Android系统版本:2.3 及以上

  • 安装

    OSS Android SDK

    上传SDK下载

    • 直接引入jar包

      当您下载了VODUpload Android SDK的zip包后,进行以下步骤(对Android studio或者Eclipse都适用):

      • 解压后在libs目录下得到jar包,目前包括aliyun-oss-sdk-android-xxx.jar、okhttp-2.7.0.jar、okio-2.6.0.jar、aliyun-vod-upload-android-sdk-xxx.jar
      • 将以上4个jar包导入工程的libs目录
      • 权限设置

        以下是VODUpload Android SDK所需要的Android权限,请确保您的AndroidManifest.xml文件中已经配置了这些权限,否则,SDK将无法正常工作。

        1. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
        2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
        3. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
        4. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
  • 创建VODUpload实例

    在这里需要设置回调函数

    1. VODUploadCallback callback = new VODUploadCallback() {
    2. /**
    3. * 文件开始上传时触发
    4. */
    5. void onUploadStarted() {;}
    6. /**
    7. * 上传成功回调
    8. */
    9. void onUploadSucceed(UploadFileInfo info) {;}
    10. /**
    11. * 上传失败
    12. */
    13. void onUploadFailed(UploadFileInfo info, String code, String message) {;}
    14. /**
    15. * 回调上传进度
    16. * @param uploadedSize 已上传字节数
    17. * @param totalSize 总共需要上传字节数
    18. */
    19. void onUploadProgress(UploadFileInfo info, long uploadedSize, long totalSize) {;}
    20. /**
    21. * 上传凭证过期后,会回调这个接口
    22. * 可在这个回调中获取新的上传,然后调用resumeUploadWithAuth继续上传
    23. */
    24. void onUploadTokenExpired() {;}
    25. /**
    26. * 上传过程中,状态由正常切换为异常时触发
    27. */
    28. void onUploadRetry(String code, String message) {;}
    29. /**
    30. * 上传过程中,从异常中恢复时触发
    31. */
    32. void onUploadRetryResume() {;}
    33. };
    34. VODUploadClient uploader = new VODUploadClientImpl(getContext());
  • 初始化

    填写授权信息,有2种方式

    • AK方式

      简单但是不够安全,建议测试环境下使用。

      1. uploader.init("<accessKeyId>", "<accessKeySecret>", callback);
    • 安全令牌方式

      安全但是较为复杂,建议生产环境下使用。安全令牌是临时、有时效性的,所以传递安全令牌是安全的。

      1. uploader.init("<accessKeyId>", "<accessKeySecret>", "<secretToken>", "<expireTime>", callback);
  • 列表管理

    • 添加上传文件

      注意:支持的文件大小<=4G

      1. uploader.addFile("<uploadFilePath>",
      2. "<endpoint>", // 例如杭州区域"http://oss-cn-hangzhou.aliyuncs.com"
      3. "<bucketName>", // 按实际bucket名称填写
      4. "<objectKey>");

      上传时,如何指定媒体的属性(标题、标签、描述、类目、封面URL、用户自定义数据)呢?addFile有一个重载函数,函数最后的参数是一个VodInfo对象。定义如下:

      1. private String title;
      2. private String desc;
      3. private Integer cateId;
      4. private List<String> tags;
      5. private String userData;
      6. private String coverUrl;
    • 删除上传文件,index对应listFiles接口返回列表中元素的索引

      1. uploader.deleteFile(index);
    • 取消列表中的单个文件上传

      1. uploader.cancelFile(index);
    • 恢复列表中的单个文件上传

      1. uploader.resumeFile(index);
    • 获取上传文件列表

      1. List<UploadFileInfo> list = uploader.listFiles();
    • 清除上传文件列表

      1. upload.clearFiles();
  • 上传控制

    • 开始上传

      1. uploader.start();
    • 停止上传

      1. uploader.start();
    • 暂停上传

      1. uploader.pause();
    • 恢复上传

      1. uploader.resume();
    • 安全令牌失效后恢复上传

      1. uploader.resumeWithToken("<accessKeyId>", "<accessKeySecret>", "<secretToken>", "<expireTime>");
本文导读目录