视频点播使用iOS SDK 实现上传

前言

视频点播平台已对外发布,当前支持IOS、Android、Web等客户端上传,该实验主要使用IOS SDK实现简单上传功能。

关于实验

预计部署时间:30分钟 级别:初级 相关产品:视频点播 受众: 通用

实验说明
  • 点击此链接登录控制台。

  • 如果您还没有账户,请点击此链接注册账户。

完成点播空间创建

alt

完成应用创建

alt

第一步-环境准备

  1. 本实验需要准备xcode,可以到App Store上安装或到官网下载。 官网下载:https://developer.apple.com/download/all/
  2. 有个人账号,能在xcode上真机调试;摄像头麦克风等模拟器无法调试。
  3. 获取应用的ID信息。
  4. 安装cocoapods。

第二步-新建项目

alt alt alt 点击Next后项目创建完成。

第三步-导入SDK

使用cocoapods导入SDK。

  1. 关闭xcode,通过终端进入项目所在的路径,创建Podfile
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/bytedance/cocoapods_sdk_source_repo.git'
source 'https://github.com/volcengine/volcengine-specs.git'

install! 'cocoapods', :deterministic_uuids => false
platform :ios, '9.0'

# 项目名 
target 'Upload-Test' do
# SDK名 ,upload需要的头文件在player,需要先导入
pod 'TTSDK', '1.23.1.4-premium', :subspecs => [
    'Uploader',
  ]
#上报SDK
pod 'RangersAppLog', '< 6.0.0', :subspecs=>['Core', 'Host']
end
  1. 执行 pod install,将SDK导入到项目。 alt 此时目录下生成了Upload-Test.xcworkspace,后续的代码都添加在xcworkspace中。目录结构如图: alt
  2. 打开 Upload-Test.xcworkspace 首选将需要上传的资源拖到项目。ios 项目中的资源都存在沙盒中,沙盒和其他项目中资源互相隔离。 alt 导入后的效果 alt

第四步-代码设置

  1. 找到AppDelegate.m,导入头文件#import <TTSDK/TTVideoUploadClientTop.h>,并在didFinishLaunchingWithOptions中加上如下代码。
    // 配置基本信息  建议早配置
    NSDictionary *appInfo = @{
       
                     @"TTVideoEngineAID" : @(xxxx),  //创建的应用id
                     @"TTVideoEngineAppName" : @"xxxx",// appName
                     @"TTVideoEngineChannel" : @"xxxx",  //渠道
                     @"TTVideoEngineUserId"  : @"xxxx",  //user_id
                             };
    [TTVideoUploadClientTop configureAppInfo:appInfo];//设置配置信息

alt 2. 找到 ViewController.m,导入头文件#import <TTSDK/TTVideoUploadClientTop.h>,声明对象和代理,如图 alt

  1. 代码放在viewDidLoad中
    //设置需要上传的文件
    NSString *filePath =  [[NSBundle mainBundle] pathForResource:@"文件名" ofType:nil];
    clientTop = [[TTVideoUploadClientTop alloc] initWithFilePath:filePath];

    //获取上传token
    [clientTop setAuthorizationParameter:"业务服务器返回"];
    
    NSDictionary* requestParameter = @{
        TTFileUploadFileTypeStr:@"object", //表示上传类型 视频 音频或其他对象
        TTFileUploadSpace:@"xxxx",  // 参数"空间",必需参数。
    };
    //配置上传空间
    [clientTop setRequestParameter:requestParameter];
    
    //上传参数配置
    NSDictionary* config = @{
        TTFileUploadFileRetryCount:@1,  //文件重试次数
        //                             TTFileUploadSocketNum:@1,     //socket数量
        TTFileUploadTraceId:@"xxxx"   //traceId  排查日志用
    };
    [clientTop setUploadConfig:config];
    
    //上传网关,必须要配置,固定不可修改
    NSString* hostName = @"vod.volcengineapi.com";
    [clientTop setVideoHostName:hostName];   //设置网关域名
    clientTop.delegate = self;//设置代理,用来接收上传进度和结果
    [clientTop start]; //开始上传
  1. 添加回调方法,接收上传结果或报错信息等
- (void)uploadDidFinish:(nullable TTVideoUploadInfoTop *)videoInfo error:(nullable NSError *)error{
    NSLog(@"TTVideoUploadInfoTop -- %@  -- %@ -- %@  -- %@",videoInfo.vid,videoInfo.callbackArgs,videoInfo.sourceInfo,error); //打印上传结果
}
- (void)uploadProgressDidUpdate:(NSInteger)progress{
    NSLog(@"-----%ld",progress);//打印进度
}

第五步-运行

alt uploadDidFinish中打印没有error信息即上传成功 alt 完成上传操作。

附ViewController.m代码

//
//  ViewController.m
//  Upload-Test
//
//  Created by bytedance on 2021/12/14.
//

#import "ViewController.h"
#import <TTSDK/TTVideoUploadClientTop.h>

@interface ViewController ()<TTVideoUploadClientTopDelegate>
{
    TTVideoUploadClientTop* clientTop;
}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //设置需要上传的文件
    NSString *filePath =  [[NSBundle mainBundle] pathForResource:@"文件名" ofType:nil];
    clientTop = [[TTVideoUploadClientTop alloc] initWithFilePath:filePath];

    //获取上传token
    [clientTop setAuthorizationParameter:"业务服务器返回"];
    
    NSDictionary* requestParameter = @{
        TTFileUploadFileTypeStr:@"object", //表示上传类型 视频 音频或其他对象
        TTFileUploadSpace:@"xxxx",  // 参数"空间",必需参数。
    };
    //配置上传空间
    [clientTop setRequestParameter:requestParameter];
    
    //上传参数配置
    NSDictionary* config = @{
        TTFileUploadFileRetryCount:@1,  //文件重试次数
        //                             TTFileUploadSocketNum:@1,     //socket数量
        TTFileUploadTraceId:@"asdf"   //traceId  排查日志用
    };
    [clientTop setUploadConfig:config];
    
    //上传网关,必须要配置,固定不可修改
    NSString* hostName = @"vod.volcengineapi.com";
    [clientTop setVideoHostName:hostName];   //设置网关域名
    clientTop.delegate = self;//设置代理,用来接收上传进度和结果
    
    [clientTop start]; //开始上传
    // Do any additional setup after loading the view.
}

- (void)uploadDidFinish:(nullable TTVideoUploadInfoTop *)videoInfo error:(nullable NSError *)error{
    NSLog(@"TTVideoUploadInfoTop -- %@  -- %@ -- %@  -- %@",videoInfo.vid,videoInfo.callbackArgs,videoInfo.sourceInfo,error); //打印上传结果
}
- (void)uploadProgressDidUpdate:(NSInteger)progress{
    NSLog(@"-----%ld",progress);//打印进度
}

@end
0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论