工具相关 API

本文介绍了与 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

统计标识

重要
  • feedId 值在 MPIDRSSDK 初始化成功后从 idrsSDK.feedId 中获取。

  • 不初始化 MPIDRSSDK 即上报结果时必须传入 feedId。

duration

long

录制长度,单位是秒(S)

rtcRecordId

NSString

RTC 录制 ID

outerBusinessId

NSString

自定义业务参数

type

IDRSRecordType

  • IDRSRecordLocal:本地

  • IDRSRecordRemote:远程

返回值

返回值

类型

说明

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.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];
                        //储存上传信息、下次再次上传
    }
}];

将从相机中获取的 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];