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

iOS上传SDK

更新时间:2017-11-01 19:26:06

  • 环境要求

    iOS系统版本:iOS 7.0以上

  • 安装

    • pod方式引入Framework

      (1)在Podfile文件中添加VODUpload库依赖

      1. pod 'VODUpload'

      (2)更新pod repo

      1. pod repo update

      (3) 安装VODUpload库

      1. pod install
    • 直接引入Framework

      (1) VODUpload iOS SDK framework,见 视频上传SDK下载

      (2) AliyunVideoCore iOS SDK framework, 见 视频上传SDK下载

      (3)OSS iOS SDK framework,具体SDK说明和下载地址请查看 OSS产品的iOS-SDK

      在Xcode中,直接把framework拖入您对应的Target下即可,在弹出框勾选Copy items if needed。

    • 工程中引入头文件

      1. #import <VODUpload/VODUpload.h>

      注意,引入Framework后,需要在工程Build SettingsOther Linker Flags中加入-ObjC。如果工程此前已经设置过-force_load选项,那么,需要加入-force_load <framework path>/AliyunOSSiOS

    • 兼容IPv6-Only网络

      OSS移动端SDK为了解决无线网络下域名解析容易遭到劫持的问题,已经引入了HTTPDNS进行域名解析,直接使用IP请求OSS服务端。在IPv6-Only的网络下,可能会遇到兼容性问题。而APP官方近期发布了关于IPv6-only网络环境兼容的APP审核要求,为此,SDK从2.5.0版本开始已经做了兼容性处理。在新版本中,除了-ObjC的设置,还需要引入两个系统库

      1. libresolv.tbd
      2. SystemConfiguration.framework
  • 创建VODUpload实例

    在这里需要设置回调函数。

    注:在onUploadstarted回调中需设置好上传凭证和上传地址才可以正常上传。

    1. OnUploadStartedListener testUploadStartedCallbackFunc = ^(UploadFileInfo* fileInfo) {
    2. NSLog(@"upload started .");
    3. };
    4. OnUploadSucceedListener testSuccessCallbackFunc = ^(NSString* filePath){
    5. NSLog(@"file:%@ upload success!", filePath);
    6. };
    7. OnUploadFailedListener testFailedCallbackFunc = ^(NSString* filePath, NSString* code, NSString* message){
    8. NSLog(@"failed code = %@, error message = %@", code, message);
    9. };
    10. // 单位:字节
    11. OnUploadProgressListener testProgressCallbackFunc = ^(NSString* filePath, long uploadedSize, long totalSize) {
    12. NSLog(@"progress uploadedSize : %li, totalSize : %li", uploadedSize, totalSize);
    13. };
    14. OnUploadTokenExpiredListener testTokenExpiredCallbackFunc = ^{
    15. NSLog(@"*token expired.");
    16. // get token and call resmeUploadWithAuth.
    17. };
    18. OnUploadRertyListener testUploadRertyListener = ^{
    19. NSLog(@"retry begin.");
    20. };
    21. OnUploadRertyResumeListener testUploadRertyResumeListener = ^{
    22. NSLog(@"retry resume.");
    23. };
    24. VODUploadListener *listener;
    25. listener = [[VODUploadListener alloc] init];
    26. listener.started = testUploadStartedCallbackFunc;
    27. listener.success = testSuccessCallbackFunc;
    28. listener.failure = testFailedCallbackFunc;
    29. listener.progress = testProgressCallbackFunc;
    30. listener.expire = testTokenExpiredCallbackFunc;
    31. listener.retry = testUploadRertyListener;
    32. listener.retryResume = testUploadRertyResumeListener;
  • 列表管理

    • 添加上传文件

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

      1. [uploader addFile:<uploadFilePath>
      2. vodInfo:<vodInfo>];

      上传时,可以使用VodInfo对象来设置是否启用水印和优先级。定义如下:

      1. @interface VodInfo : NSObject
      2. @property (nonatomic, assign) BOOL isShowWaterMark;
      3. @property (nonatomic, assign) NSNumber* priority;
    • 删除上传文件

      1. [uploader deleteFile:<index>];
    • 取消列表中的单个文件上传

      1. [uploader cancelFile:<index>];
    • 恢复列表中的单个文件上传

      1. [uploader resumeFile:<index>];
    • 获取上传文件列表

      1. [uploader listFiles];
    • 清理上传文件列表

      1. [uploader clearFiles];
  • 上传控制

    • 开始上传

      1. [uploader start];
    • 停止上传

      1. [uploader stop];
    • 暂停上传

      1. [uploader pause];
    • 恢复上传

      1. [uploader resume];
    • 上传凭证失效后恢复上传

      1. [uploader resumeUploadWithAuth:<uploadAuth>];
    • 设置上传地址和上传凭证

      1. [uploader setUploadAuthAndAddress:uploadAuth
      2. uploadAddress:uploadAddress];
本文导读目录