tencent cloud

文档反馈

iOS 上传 SDK

最后更新时间:2024-11-15 10:57:32
    对于在 iOS 平台上传视频的场景,云点播提供了 iOS 上传 SDK 。上传流程请参见 客户端上传指引
    SDK 名称
    云点播 iOS 上传 SDK
    版本号
    V1.1.23.0
    SDK 介绍
    为 App 的最终用户提供本地视频上传到云点播平台的场景
    开发者
    腾讯云计算(北京)有限责任公司
    下载 SDK
    1. 单击下载 iOS 上传 Demo 及源码,将下载好的压缩包解压,可以看到 Demo 目录。
    2. 上传源码在 Demo/app/src/main/java/com/tencent/ugcupload/demo/videoupload 目录下。

    集成上传库和源码

    1. 拷贝上传源码目录TXUGCUploadDemo/upload到您的工程中。
    2. 在您的 Podfile 中添加如下依赖:
    pod 'QCloudQuic','6.3.7'
    pod 'QCloudCOSXML/Slim','6.4.4'
    // 根据您的工程已经有该依赖可以不用额外添加
    pod 'AFNetworking','4.0.1'
    3. 在 Build Settings 中设置 Other Linker Flags,加入参数-ObjC

    简单视频上传

    初始化上传对象

    TXUGCPublish *_videoPublish = [[TXUGCPublish alloc] initWithUserID:@"upload_video_userid"];

    设置上传对象回调

    _videoPublish.delegate = self;
    #pragma mark - TXVideoPublishListener
    
    - (void)onPublishProgress:(NSInteger)uploadBytes totalBytes:(NSInteger)totalBytes {
    self.progressView.progress = (float)uploadBytes/totalBytes;
    NSLog(@"onPublishProgress [%ld/%ld]", uploadBytes, totalBytes);
    }
    
    - (void)onPublishComplete:(TXPublishResult*)result {
    NSString *string = [NSString stringWithFormat:@"上传完成,错误码[%d],信息[%@]", result.retCode, result.retCode == 0? result.videoURL: result.descMsg];
    [self showErrorMessage:string];
    NSLog(@"onPublishComplete [%d/%@]", result.retCode, result.retCode == 0? result.videoURL: result.descMsg);
    }

    构造上传参数

    TXPublishParam *publishParam = [[TXPublishParam alloc] init];
    
    publishParam.signature = @"由您业务后台产生的签名";
    publishParam.videoPath = @"视频文件路径";
    signature计算规则请参见 客户端上传签名

    调用上传

    [_videoPublish publishVideo:publishParam];
    说明:
    上传方法根据用户文件的长度,自动选择普通上传以及分片上传,用户不用关心分片上传的每个步骤,即可实现分片上传。
    如需上传至指定应用下,请参见 应用体系 - 客户端上传

    高级功能

    携带封面

    在上传参数中带上封面图片即可。
    TXPublishParam *publishParam = [[TXPublishParam alloc] init];
    publishParam.signature = @"由您业务后台产生的签名";
    publishParam.coverPath = @"封面图片文件路径";
    publishParam.videoPath = @"视频文件路径";

    取消和恢复上传

    取消上传,调用canclePublish接口。
    [_videoPublish canclePublish];
    恢复上传,用相同的上传参数(视频路径和封面路径不变),再调用一次TXUGCPublishpublishVideo

    断点续传

    在视频上传过程中,云点播支持断点续传,即当上传意外终止时,用户再次上传该文件,可以从中断处继续上传,减少重复上传时间。断点续传的有效时间是1天,即同一个视频上传被中断,那么1天内再次上传可以直接从断点处上传,超过1天默认会重新上传完整视频。
    上传参数中的enableResume为断点续传开关,默认是开启的。

    开启 https 上传

    将上传参数中 TXPublishParam 中的 enableHTTPS 置为 true 即可,默认 false。
    TXPublishParam *publishParam = [[TXPublishParam alloc] init];
    publishParam.enableHTTPS = true;

    关闭日志

    关闭日志需要通过 TXUGCPublish 的setIsDebug方法进行操作,默认开启。开启的情况下,会打印 logcat 日志,同时也会将 log 保存到 app 私有目录下。
    // NO 关闭日志
    [_videoPublish setIsDebug:NO];
    

    图片和媒体上传

    // 创建对象
    TXUGCPublish *_imagePublish = [[TXUGCPublish alloc] initWithUserID:@"upload_image_userid"];
    
    // 设置回调
    _imagePublish.mediaDelegate = self;
    
    // 构造上传参数
    TXMediaPublishParam *publishParam = [[TXMediaPublishParam alloc] init];
    publishParam.signature = @"由您业务后台产生的签名";
    publishParam.mediaPath = @"图片文件路径";
    
    // 上传图片或媒体文件
    [_imagePublish publishMedia:publishParam];
    

    视频上传接口描述

    初始化上传对象:TXUGCPublish::initWithUserID
    参数名称
    参数描述
    类型
    必填
    userID
    用户 userID,用于区分不同的用户。
    NSString
    开始上传:TXUGCPublish.publishVideo
    参数名称
    参数描述
    类型
    必填
    param
    发布参数。
    TXPublishParam
    上传参数:TXPublishParam
    参数名称
    参数描述
    类型
    必填
    signature
    NSString*
    videoPath
    本地视频文件路径。
    NSString*
    coverPath
    封面图片本地路径,可不设置。
    NSString*
    fileName
    上传到腾讯云的视频文件名称,不填默认用本地文件名。
    NSString*
    enableResume
    是否启动断点续传,默认开启。
    BOOL
    enableHttps
    是否启动 HTTPS,默认关闭。
    BOOL
    enablePreparePublish
    是否开启预上传机制,默认开启。预上传机制可以大幅提升文件的上传质量。
    BOOL
    sliceSize
    分片大小,支持最小为1M,最大10M,默认为上传文件大小除以10。
    long
    concurrentCount
    分片上传最大并发数量,默认为4个。
    int
    trafficLimit
    限速值设置范围为819200 ~ 838860800,即100KB/s ~ 100MB/s,如果超出该范围会返回400错误。不建议将该值设置太小,防止超时。-1 表示不限速。
    long
    uploadResumController
    续点控制器,可自行实现续点键值的计算和保存,默认使用 md5 计算文件键值。
    id<IUploadResumeController>
    设置上传回调:TXUGCPublish.delegate
    成员变量名称
    变量描述
    类型
    必填
    delegate
    上传进度和结果回调代理。
    TXVideoPublishListener
    上传进度回调:onPublishProgress
    变量名称
    变量描述
    类型
    uploadBytes
    已经上传的字节数。
    NSInteger
    totalBytes
    总字节数。
    NSInteger
    上传结果回调:onPublishComplete
    变量名称
    变量描述
    类型
    result
    上传结果。
    TXPublishResult
    上传事件回调:onPublishEvent
    变量名称
    变量描述
    类型
    evt
    事件,用于调试打印。
    NSDictionary
    上传结果:TXPublishResult
    成员变量名称
    变量说明
    类型
    retCode
    错误码。
    int
    descMsg
    上传失败的错误描述。
    NSString
    videoId
    点播视频文件 ID。
    NSString
    videoURL
    视频存储地址。
    NSString
    coverURL
    封面存储地址。
    NSString
    预上传:TXUGCPublishOptCenter.prepareUpload
    参数名称
    参数描述
    类型
    必填
    signature
    NSString

    错误码

    SDK 通过TXVideoPublishListener接口来订阅视频上传相关的状态。因此,可以用TXPublishResult中的retCode来确认视频发布的情况。
    错误码
    在 TVCCommon 中所对应的常量
    含义
    0
    TVC_OK
    上传成功
    1001
    TVC_ERR_UGC_REQUEST_FAILED
    请求上传失败,通常是客户端签名过期或者非法,需要 App 重新申请签名
    1002
    TVC_ERR_UGC_PARSE_FAILED
    请求信息解析失败
    1003
    TVC_ERR_VIDEO_UPLOAD_FAILED
    上传视频失败
    1004
    TVC_ERR_COVER_UPLOAD_FAILED
    上传封面失败
    1005
    TVC_ERR_UGC_FINISH_REQ_FAILED
    结束上传请求失败
    1006
    TVC_ERR_UGC_FINISH_RSP_FAILED
    结束上传响应错误
    1008
    TVC_ERR_FILE_NOT_EXIST
    传入的文件路径上文件不存在
    1009
    TVC_ERR_ERR_UGC_PUBLISHING
    视频正在上传中
    1010
    TVC_ERR_UGC_INVALID_PARAME
    无效参数
    1012
    TVC_ERR_INVALID_SIGNATURE
    短视频上传签名为空
    1013
    TVC_ERR_INVALID_VIDEOPATH
    视频路径为空
    1017
    TVC_ERR_USER_CANCLE
    用户调用取消上传
    1020
    TVC_ERR_UPLOAD_SIGN_EXPIRED
    签名过期

    图片和媒体上传接口描述

    初始化上传对象:TXUGCPublish::initWithUserID
    参数名称
    参数描述
    类型
    必填
    userID
    用户 userID,用于区分不同的用户。
    NSString
    开始上传:TXUGCPublish.publishMedia
    参数名称
    参数描述
    类型
    必填
    param
    发布参数。
    TXMediaPublishParam
    上传参数:TXMediaPublishParam
    参数名称
    参数描述
    类型
    必填
    signature
    NSString*
    mediaPath
    本地图片/媒体文件路径。
    NSString*
    fileName
    上传到腾讯云的图片/媒体文件名称,不填默认用本地文件名。
    NSString*
    enableResume
    是否启动断点续传,默认开启。
    BOOL
    enableHttps
    是否启动 HTTPS,默认关闭。
    BOOL
    enablePreparePublish
    是否开启预上传机制,默认开启。预上传机制可以大幅提升文件的上传质量。
    BOOL
    sliceSize
    分片大小,支持最小为1M,最大10M,默认为上传文件大小除以10。
    long
    concurrentCount
    分片上传最大并发数量,默认为4个。
    int
    trafficLimit
    限速值设置范围为819200 ~ 838860800,即100KB/s ~ 100MB/s,如果超出该范围会返回400错误。不建议将该值设置太小,防止超时。-1 表示不限速。
    long
    uploadResumController
    续点控制器,可自行实现续点键值的计算和保存,默认使用 md5 计算文件键值。
    id<IUploadResumeController>
    设置上传回调:TXUGCPublish.TXMediaPublishListener
    成员变量名称
    变量描述
    类型
    必填
    mediaDelegate
    上传进度和结果回调代理。
    TXMediaPublishListener
    上传进度回调:onMediaPublishProgress
    变量名称
    变量描述
    类型
    uploadBytes
    已上传的字节数。
    NSInteger
    totalBytes
    总字节数。
    NSInteger
    上传结果回调:onMediaPublishComplete
    变量名称
    变量描述
    类型
    result
    上传结果。
    TXMediaPublishResult
    上传事件回调:onMediaPublishEvent
    变量名称
    变量描述
    类型
    evt
    事件,用于调试打印。
    NSDictionary
    上传结果:TXMediaPublishResult
    成员变量名称
    变量说明
    类型
    retCode
    错误码。
    int
    descMsg
    上传失败的错误描述。
    NSString
    mediaId
    图片/媒体文件 ID。
    NSString
    mediaURL
    图片/媒体存储地址。
    NSString
    预上传:TXUGCPublishOptCenter.prepareUpload
    参数名称
    参数描述
    类型
    必填
    signature
    NSString

    错误码

    SDK 通过TXMediaPublishListener接口来订阅图片/媒体上传相关的状态。因此,可以用TXMediaPublishResult中的retCode来确认图片/媒体发布的情况。
    错误码
    在 TVCCommon 中所对应的常量
    含义
    0
    TVC_OK
    上传成功
    1001
    TVC_ERR_UGC_REQUEST_FAILED
    请求上传失败,通常是客户端签名过期或者非法,需要 App 重新申请签名。
    1002
    TVC_ERR_UGC_PARSE_FAILED
    请求信息解析失败。
    1003
    TVC_ERR_VIDEO_UPLOAD_FAILED
    上传视频失败。
    1004
    TVC_ERR_COVER_UPLOAD_FAILED
    上传封面失败。
    1005
    TVC_ERR_UGC_FINISH_REQ_FAILED
    结束上传请求失败。
    1006
    TVC_ERR_UGC_FINISH_RSP_FAILED
    结束上传响应错误。
    1008
    TVC_ERR_FILE_NOT_EXIST
    传入的文件路径上文件不存在。
    1009
    TVC_ERR_ERR_UGC_PUBLISHING
    视频正在上传中。
    1010
    TVC_ERR_UGC_INVALID_PARAME
    无效参数。
    1012
    TVC_ERR_INVALID_SIGNATURE
    短视频上传签名为空。
    1013
    TVC_ERR_INVALID_VIDEOPATH
    视频路径为空。
    1017
    TVC_ERR_USER_CANCLE
    用户调用取消上传。
    1020
    TVC_ERR_UPLOAD_SIGN_EXPIRED
    签名过期。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持