本文介绍了与 SDK 工具相关的 API。
获取版本号
+ (NSString*)getVersion;
请求参数
无
返回值
类型 | 说明 |
类型 | 说明 |
NSString | 版本号 |
代码示例
NSString *version = [MPIDRSSDK getVersion];
上报结果
结果上报接口有两种使用场景,分别为:
初始化 MPIDRSSDK,录制音视频,录制完成后上报结果。
如果因网络故障上报结果失败,可以将带上报的结果信息先保存在本地,待网络故障修复后,不初始化 MPIDRSSDK,直接调用上报结果接口上报结果。在该场景中必须传入 feedid 参数。
- (void)uploadFileWithParam:(IDRSUploadManagerParam*)uploadBody
success:(void (^)(id responseObject))success
failure:(void (^)(NSError *error, IDRSUploadManagerParam *upLoadParam))failure;
请求参数
参数 | 类型 | 说明 | 是否必须 |
参数 | 类型 | 说明 | 是否必须 |
uploadBody | IDRSUploadManagerParam | 上传的参数,更多信息请参见下方IDRSUploadManagerParam 的参数说明 | 是 |
IDRSUploadManagerParam 的说明如下表。
参数 | 类型 | 说明 | 是否必须 |
参数 | 类型 | 说明 | 是否必须 |
files | NSArray <IDRSUploadFile*> | 文件数组 | 否 |
appId | NSString | 应用 ID | 是 |
ak | NSString | AK,即 Access Key ID | 是 |
sk | NSString | SK,即 Secret Access Key | 是 |
detectProcessId | NSString | 流程 ID | 否 |
roomId | NSString | 房间号 | 否 |
recordAt | NSDate | 开始录制时间 | 否 |
feedId | NSString | 统计标识
| 否 |
duration | long | 录制长度,单位是秒(S) | 否 |
rtcRecordId | NSString | RTC 录制 ID | 否 |
outerBusinessId | NSString | 自定义业务参数 | 否 |
type | IDRSRecordType |
| 是 |
返回值
返回值 | 类型 | 说明 |
返回值 | 类型 | 说明 |
success | NSDictionary | 上报结果成功时回调 |
failure | error, IDRSUploadManagerParam | 上报结果失败时返回 IDRSUploadManagerParam,更多信息请参见请求参数中 IDRSUploadManagerParam 的说明。 |
代码示例
远程双录上报示例
IDRSUploadManagerParam *param = [[IDRSUploadManagerParam alloc] init]; param.duration = self.duration; param.appId = AppId; param.ak = Ak; param.sk = Sk; param.type = IDRSRecordRemote; param.recordAt = self.startTime; param.roomId = self.roomId; param.feedId = self.feedId; param.rtcRecordId = dictionary[@"recordId"]; param.outerBusinessId = [DemoSetting sharedInstance].outBusinessId; IDRSUploadManager *update = [[IDRSUploadManager alloc] init]; [update uploadFileWithParam:param success:^(id _Nonnull responseObject) { NSLog(@"remote :: 上报 %@",responseObject); if ([[responseObject objectForKey:@"Code"] isEqualToString:@"OK"]) { [self showToastWith:@"result文件上传成功" duration:2]; } } failure:^(NSError * _Nonnull error, IDRSUploadManagerParam * _Nonnull upLoadParam) { NSLog(@"remote :: 上报 %@",error); if (upLoadParam) { [self showToastWith:@"result文件上传失败" duration:3]; } }];
本地双录上报示例
NSMutableArray *fileArr = [[NSMutableArray alloc] init]; //视频文件 IDRSUploadFile *VideoFile = [[IDRSUploadFile alloc] init]; VideoFile.fileName = self.videoName; VideoFile.filePath = self.videoPath; [fileArr addObject:VideoFile]; //meta文件 IDRSUploadFile *MetaFile = [[IDRSUploadFile alloc] init]; MetaFile.fileName = self.metaName; MetaFile.filePath = self.metaPath; [fileArr addObject:MetaFile]; //result文件 IDRSUploadFile *ResultFile = [[IDRSUploadFile alloc] init]; ResultFile.fileName = self.resultName; ResultFile.filePath = self.resultPath; [fileArr addObject:ResultFile]; //合并参数 IDRSUploadManagerParam *param = [[IDRSUploadManagerParam alloc] init]; param.duration = self.duration; param.ak = Ak; param.sk = Sk; param.appId = AppId; param.type = IDRSRecordLocal; param.recordAt = self.startTime; param.detectProcessId = self.processId; param.files = fileArr; param.outerBusinessId = [FlowConfig sharedInstance].outerBusinessId; //上传 IDRSUploadManager *update = [[IDRSUploadManager alloc] init]; [update uploadFileWithParam:param success:^(id _Nonnull responseObject) { [self ossFileDelegateWithRun:false msg:responseObject]; } failure:^(NSError * _Nonnull error, IDRSUploadManagerParam * _Nonnull upLoadParam) { [self errorWith:UPLOADERROR code:ERROR_TYPE_UPLOAD msg:error position:@"uploadFile" param:upLoadParam]; [self ossFileDelegateWithRun:false msg:@"上传失败、请在错误回调接口获取本次上传的信息,可用于重新上传"]; }];
将从相机中获取的 sampleBuffer 保存到相册
- (void)saveSampleBufferFromCamera: (CMSampleBufferRef)sampleBuffer;
请求参数
参数 | 类型 | 说明 | 是否必须 |
参数 | 类型 | 说明 | 是否必须 |
sampleBuffer | CMSampleBufferRef | 相机流 | 是 |
返回值
无
代码示例
[self.idrs saveSampleBufferFromCamera:sampleBuffer];
将 RTC 视频流转成图片
- (UIImage *) getImageFromRPVideo: (CVImageBufferRef)imageBuffer;
请求参数
参数 | 类型 | 说明 | 是否必须 |
参数 | 类型 | 说明 | 是否必须 |
sampleBuffer | CVImageBufferRef | RTC 流数据 | 是 |
返回值
类型 | 说明 |
类型 | 说明 |
UIImage | 当前视频流的图片展示 |
代码示例
UIImage *image = [self.idrs getImageFromRPVideo:imageBuffer];
获取 resultJson
- (NSString *)resultGetMetaJson;
请求参数
无
返回值
类型 | 说明 |
类型 | 说明 |
NSString | resultJson |
代码示例
NSString *json = [self.idrs resultGetMetaJson];
SDK 销毁
- (void)releaseResources;
请求参数
无
返回值
无
代码示例
[self.idrs releaseResources];
- 本页导读 (0)
- 获取版本号
- 请求参数
- 返回值
- 代码示例
- 上报结果
- 请求参数
- 返回值
- 代码示例
- 将从相机中获取的 sampleBuffer 保存到相册
- 请求参数
- 返回值
- 代码示例
- 将 RTC 视频流转成图片
- 请求参数
- 返回值
- 代码示例
- 获取 resultJson
- 请求参数
- 返回值
- 代码示例
- SDK 销毁
- 请求参数
- 返回值
- 代码示例