iOS 阿里云短视频上传
之前维护一个项目用到VODUpload上传头像,因为太忙,并没有深入研究,在此先记录一下简单的使用。1、官方连接demo连接安装SDK:pod 'VODUpload'导入头文件#import <VODUpload/VODUploadClient.h>#import <VODUpload/VODUploadModel.h>2、初始化VODUpload#pragma mark
·
之前维护一个项目用到VODUpload上传头像,因为太忙,并没有深入研究,在此先记录一下简单的使用。
1、官方连接demo连接
安装SDK:
pod 'VODUpload'
导入头文件
#import <VODUpload/VODUploadClient.h>
#import <VODUpload/VODUploadModel.h>
2、初始化VODUpload
#pragma mark --初始化
- (void)initVODUpload {
WEAKSELF;
OnUploadStartedListener testUploadStartedCallbackFunc = ^(UploadFileInfo* fileInfo) {
NSLog(@"upload started .");
[weakSelf.uploader setUploadAuthAndAddress:fileInfo uploadAuth:weakSelf.codeModel.UploadAuth uploadAddress:weakSelf.codeModel.UploadAddress];
};
OnUploadSucceedListener testSuccessCallbackFunc = ^(UploadFileInfo* fileInfo){
NSLog(@"file:%@ upload success!", fileInfo.filePath);
dispatch_async(dispatch_get_main_queue(), ^{
[weakSelf updateHeaderImg];
});
};
OnUploadFailedListener testFailedCallbackFunc = ^(UploadFileInfo* fileInfo, NSString *code, NSString * message){
NSLog(@"failed, filePath:%@, code = %@, error message = %@", fileInfo.filePath, code, message);
};
// 单位:字节
OnUploadProgressListener testProgressCallbackFunc = ^(UploadFileInfo* fileInfo, long uploadedSize, long totalSize) {
NSLog(@"progress uploadedSize : %li, totalSize : %li", uploadedSize, totalSize);
};
OnUploadTokenExpiredListener testTokenExpiredCallbackFunc = ^{
NSLog(@"*token expired.");
// get token and call resmeUploadWithAuth.
};
OnUploadRertyListener testUploadRertyListener = ^{
NSLog(@"retry begin.");
};
OnUploadRertyResumeListener testUploadRertyResumeListener = ^{
NSLog(@"retry resume.");
};
VODUploadListener *listener;
listener = [[VODUploadListener alloc] init];
listener.started = testUploadStartedCallbackFunc;
listener.success = testSuccessCallbackFunc;
listener.failure = testFailedCallbackFunc;
listener.progress = testProgressCallbackFunc;
listener.expire = testTokenExpiredCallbackFunc;
listener.retry = testUploadRertyListener;
listener.retryResume = testUploadRertyResumeListener;
self.uploader = [[VODUploadClient alloc] init];
[self.uploader init:@"LTAI4GL54MAJesJsDyXKaWgG" accessKeySecret:@"sEo0LFyWksDtGhwxs649qdkLZr6cB0" listener:listener];
}
3、上传文件
#pragma mark --上传视频文件
- (void)uploadVideo{
NSLog(@"上传视频文件:%@", self.selectPathFile);
[self.uploader addFile:self.selectPathFile vodInfo:nil];
//注意:开始上传前要先获取授权,开始上传时需要用到授权信息这里是关键,需要从服务器获得两个参数
[self getUploadAuthAndAddressWithFilePath:self.selectPathFile];
__weak typeof(self) weakSelf = self;
OnUploadStartedListener testUploadStartedCallbackFunc = ^(UploadFileInfo* fileInfo) {
NSLog(@"upload started .");
[weakSelf.uploader setUploadAuthAndAddress:fileInfo uploadAuth:weakSelf.codeModel.UploadAuth uploadAddress:weakSelf.codeModel.UploadAddress];
};
}
4、从后台获得UploadAuth和UploadAddress
#pragma mark --获取授权
- (void)getUploadAuthAndAddressWithFilePath:(NSString *)filePath {
if (!filePath) {
NSLog(@"视频文件路径错误");
return;
}
NSArray *arr1 = [filePath componentsSeparatedByString:@"/"];
NSString *fileName = [arr1 lastObject];
if (!fileName) {
NSLog(@"获取视频文件名称错误");
return;
}
NSArray *arr2 = [fileName componentsSeparatedByString:@"."];
NSString *fileTitle = [arr2 firstObject];
if (!fileTitle) {
NSLog(@"获取视频文件标题错误");
return;
}
WEAKSELF;
NSMutableDictionary *parameters = [NSMutableDictionary dictionary];
[self showLoadingHud];
[HBNetworkService POST:url parameters:parameters success:^(LBResponse *response) {
[weakSelf dissmissHud];
if (response.succeed) {
NSDictionary *dic = response.result[@"resultdata"];
if (ValidDict(dic)) {
//获得后台传过来的数据
weakSelf.codeModel = [HBAuthCodeModel mj_objectWithKeyValues:dic];
//开始上传
[weakSelf.uploader start];
}
}else{
//请求错误
[weakSelf showInfoHudWithMessage:response.message] ;
}
} failure:^(NSError *error) {
[weakSelf dissmissHud];
[weakSelf showInfoHudWithMessage:RequestServerFaild] ;
}];
}
END.
更多推荐
所有评论(0)