更新时间:2022-02-17 06:50:20下载pdf
云可视对讲功能,是指App和云可视设备(例如监控、门禁)相互通信。该功能需要配合涂鸦 智能生活 IPC SDK 一起使用。
利用云可视管理类,加载配置项,在成功回调里,初始化涂鸦摄像机,直接连接视频流进行实时查看即可。
为 TuyaCommunityVisualSpeakManager
添加代理。
当收到设备消息时,会触发 receiveDeviceMessageWithType: messageModel:
代理方法。然后,在代理方法中,需先加载配置项,在成功回调中用摄像机去连接视频,进行预览。
预览成功后,去连接音频,进行对讲。
IPC SDK 建议接入版本如下:
pod 'TuyaSmartCameraKit', '4.28.5.2'
主要管理设备的配置项,及设备通信回调。
类名 | 说明 |
---|---|
TuyaCommunityVisualSpeakManager | 云可视管理类,单例类 |
TuyaCommunityVisualSpeakManagerDelegate | 收到云可视设备消息回调(呼叫、接听、挂断等) |
查看视频或者接听设备呼叫时,需要先加载一下配置项,然后再做后续操作。
接口说明
- (void)loadConfigWithDeviceId:(NSString *)deviceId
gatewayId:(nullable NSString *)gatewayId
success:(void(^)(void))success
failure:(void(^)(NSError *error))failure;
请求参数
参数 | 说明 |
---|---|
deviceId | 设备 ID |
gatewayId | 网关 ID(非必传),如果设备挂在网关下,需传此值 |
success | 成功回调 |
failure | 失败回调 |
示例代码
[TuyaCommunityVisualSpeakManager.shareInstance loadConfigWithDeviceId:@"device_id" gatewayId:@"gateway_id" success:^{
NSLog(@"load config success");
} failure:^(NSError * _Nonnull error) {
NSLog(@"load config error: %@", error.localizedDescription);
}];
为云可视管理类添加代理,用来实现通信协议。
接口说明
- (void)addDelegate:(id<TuyaCommunityVisualSpeakManagerDelegate>)delegate;
当不需要时,移除代理。
接口说明
- (void)removeDelegate:(id<TuyaCommunityVisualSpeakManagerDelegate>)delegate;
和设备通信过程中,当收到设备消息时,会在下面代理方法中回调。
接口说明
- (void)receiveDeviceMessageWithMessageModel:(TuyaCommunityVisualSpeakDeviceMessageModel *)messageModel;
TuyaCommunityVisualSpeakDeviceMessageModel
数据模型
属性 | 说明 |
---|---|
deviceId | 设备 ID |
roomId | 房号 ID |
type | 通信类型, TuyaCommunityVisualSpeakCommunicationType 枚举类 |
reqType | 呼叫类型 |
sn | 通话唯一识别号 |
TuyaCommunityVisualSpeakCommunicationType
枚举类
类型 | 说明 |
---|---|
TuyaCommunityVisualSpeakCommunicationTypeUnknow | 未知错误 |
TuyaCommunityVisualSpeakCommunicationTypeCalling | 呼叫中 |
TuyaCommunityVisualSpeakCommunicationTypeDeviceHungUp | 设备主动挂断 |
TuyaCommunityVisualSpeakCommunicationTypeCallTimeoutHungUp | 呼叫超时挂断 |
TuyaCommunityVisualSpeakCommunicationTypeCallPassiveHungUp | 被动挂断 |
TuyaCommunityVisualSpeakCommunicationTypeAnswer | 设备被接听 |
TuyaCommunityVisualSpeakCommunicationTypeTimeOutHungUp | 通话超时自动挂断 |
示例代码
- (void)viewDidLoad {
[super viewDidLoad];
[TuyaCommunityVisualSpeakManager.shareInstance addDelegate:self];
}
#pragma mark - TuyaCommunityVisualSpeakManagerDelegate
- (void)receiveDeviceMessageWithMessageModel:(TuyaCommunityVisualSpeakDeviceMessageModel *)messageModel {
// 收到设备通信信息,根据model.type做相应处理
}
通过 App 去查看安装在公共区域的监控设备。
类说明
类名 | 说明 |
---|---|
TuyaCommunityPublicMonitorService | 公区监控服务类 |
TuyaCommunityPublicMonitorModel | 公区监控数据模型 |
TuyaCommunityPublicMonitorModel 数据模型
字段 | 说明 |
---|---|
deviceId | 设备 ID |
deviceName | 设备名称 |
deviceThumbnailsUrl | 设备封面图 |
deviceStatus | 设备状态 |
gatewayId | 网关 ID |
通过此API查看用户有权限查看的公区监控设备。
接口说明
- (void)getPublicMonitorListWithCommunityId:(NSString *)communityId
roomId:(NSString *)roomId
success:(void(^)(NSArray<TuyaCommunityPublicMonitorModel *> *list))success
failure:(void(^)(NSError *error))failure;
请求参数
参数 | 说明 |
---|---|
communityId | 小区 ID |
roomId | 房号 ID |
success | 成功回调 |
failure | 失败回调 |
示例代码
[self.publicMonitorService getPublicMonitorListWithCommunityId:@"community_id" roomId:@"room_id" success:^(NSArray<TuyaCommunityPublicMonitorModel *> * _Nonnull list) {
NSLog(@"get public monitor list success");
} failure:^(NSError * _Nonnull error) {
NSLog(@"get public monitor list failure: %@", error.localizedDescription);
}];
对于可视门禁,有两个功能:
类名 | 说明 |
---|---|
TuyaCommunityAccessControlService | 门禁服务类 |
TuyaCommunityAccessControlModel | 门禁数据模型 |
TuyaCommunityAccessControlModel
数据模型
字段 | 说明 |
---|---|
deviceId | 设备 ID |
deviceName | 设备名称 |
roomId | 房号 ID |
deviceStatus | 设备状态 |
deviceType | 设备类型,TuyaCommunityVisualSpeakDeviceType枚举类 |
TuyaCommunityVisualSpeakDeviceType
说明
字段 | 说明 |
---|---|
TuyaCommunityVisualSpeakDeviceTypeAccessControl | 门禁 |
TuyaCommunityVisualSpeakDeviceTypePublicMonitor | 公区监控 |
TuyaCommunityVisualSpeakDeviceTypeCentralMachine | 中心机 |
通过此接口查看用户有权限的门禁设备列表。
接口说明
- (void)getAccessControlListWithCommunityId:(NSString *)communityId
roomId:(NSString *)roomId
success:(void(^)(NSArray<TuyaCommunityAccessControlModel *> *list))success
failure:(void(^)(NSError *error))failure;
请求参数
参数 | 说明 |
---|---|
communityId | 小区 ID |
roomId | 房号 ID |
success | 成功回调 |
failure | 失败回调 |
示例代码
[self.accessControlService getAccessControlListWithCommunityId:@"community_id" roomId:@"room_id" success:^(NSArray<TuyaCommunityAccessControlModel *> * _Nonnull list) {
NSLog@(@"get access control list success");
} failure:^(NSError * _Nonnull error) {
NSLog(@"get access control list error: %@", error.localizedDescription);
}];
平台端可以配置用户可查看门禁次数,通过此接口查看剩余可查看次数。
接口说明
- (void)getAccessControlViewableTimesWithCommunityId:(NSString *)communityId
roomId:(NSString *)roomId
deviceId:(NSString *)deviceId
success:(void(^)(int number))success
failure:(void(^)(NSError *error))failure;
请求参数
参数 | 说明 |
---|---|
communityId | 小区 ID |
roomId | 房号 ID |
deviceId | 设备 ID |
success | 成功回调 |
failure | 失败回调 |
示例代码
[self.accessControlService getAccessControlViewableTimesWithCommunityId:@"community_id" roomId:@"room_id" deviceId:@"device_id" success:^(int number) {
NSLog(@"get access control viewable times success");
} failure:^(NSError * _Nonnull error) {
NSLog(@"get access control viewable times failure: %@", error.localizedDescription);
}];
当收到呼叫时,可以通过此接口去判断门禁状态,如果空闲时,可以直接去连接通话。
接口说明
- (void)getAccessControlStatusWithCommunityId:(NSString *)communityId
roomId:(NSString *)roomId
deviceId:(NSString *)deviceId
sn:(NSString *)sn
success:(void(^)(TuyaCommunityVisualSpeakCommunicationType type))success
failure:(void(^)(NSError *error))failure;
请求参数
参数 | 说明 |
---|---|
communityId | 小区 ID |
roomId | 房号 ID |
deviceId | 设备 ID |
sn | 通话唯一识别号 |
success | 成功回调 |
failure | 失败回调 |
示例代码
[self.accessControlService getAccessControlStatusWithCommunityId:@"community_id" roomId:@"room_id" deviceId:@"device_id" sn:@"sn" success:^(TuyaCommunityVisualSpeakCommunicationType type) {
NSLog(@"get access control status success");
} failure:^(NSError * _Nonnull error) {
NSLog(@"get access control status failure: %@", error.localizedDescription);
}];
调用此接口可以进行开门。
接口说明
- (void)openDoorWithCommunityId:(NSString *)communityId
roomId:(NSString *)roomId
deviceId:(NSString *)deviceId
success:(void(^)(id result))success
failure:(void(^)(NSError *error))failure;
请求参数
参数 | 说明 |
---|---|
communityId | 小区 ID |
roomId | 房号 ID |
deviceId | 设备 ID |
success | 成功回调 |
failure | 失败回调 |
示例代码
[self.accessControlService openDoorWithCommunityId:@"community_id" roomId:@"room_id" deviceId:@"device_id" success:^(id _Nonnull result) {
NSLog(@"open door success");
} failure:^(NSError * _Nonnull error) {
NSLog(@"open door failure: %@", error.localizedDescription);
}];
当用户收到门禁呼叫时,可以直接拒接。
接口说明
- (void)rejectWithCommunityId:(NSString *)communityId
roomId:(NSString *)roomId
deviceId:(NSString *)deviceId
sn:(NSString *)sn
success:(void(^)(id result))success
failure:(void(^)(NSError *error))failure
请求参数
参数 | 说明 |
---|---|
communityId | 小区 ID |
roomId | 房号 ID |
deviceId | 设备 ID |
sn | 通话唯一识别号 |
success | 成功回调 |
failure | 失败回调 |
示例代码
[self.accessControlService rejectWithCommunityId:@"community_id" roomId:@"room_id" deviceId:@"device_id" sn:@"sn" success:^(id _Nonnull result) {
NSLog(@"reject success");
} failure:^(NSError * _Nonnull error) {
NSLog(@"reject failure: %@", error.localizedDescription);
}];
当用户收到设备呼叫时,调用此接口进行接听。
接口说明
- (void)acceptWithDeviceId:(NSString *)deviceId
success:(nullable void(^)(void))success
failure:(nullable void(^)(NSError *error))failure;
请求参数
参数 | 说明 |
---|---|
deviceId | 设备 ID |
success | 成功回调 |
failure | 失败回调 |
示例代码
[self.accessControlService acceptWithDeviceId:@"device_id" success:nil failure:nil];
和门禁通话中,可以通过此接口进行挂断。
接口说明
- (void)hangUpWithDeviceId:(NSString *)deviceId
success:(nullable void(^)(void))success
failure:(nullable void(^)(NSError *error))failure;
请求参数
参数 | 说明 |
---|---|
deviceId | 设备 ID |
success | 成功回调 |
failure | 失败回调 |
示例代码
[self.service hangUpWithDeviceId:"device_id" success:nil failure:nil];
调用此接口可以记录用户的通话时长。
接口说明
- (void)recordTimeWithCommunityId:(NSString *)communityId
roomId:(NSString *)roomId
deviceId:(NSString *)deviceId
callTime:(long long)callTime
talkTime:(NSInteger)talkTime
direction:(NSInteger)direction
success:(nullable void(^)(void))success
failure:(nullable void(^)(NSError *error))failure;
请求参数
参数 | 说明 |
---|---|
communityId | 小区 ID |
roomId | 房号 ID |
deviceId | 设备 ID |
callTime | 呼叫时间,单位毫秒 |
talkTime | 通话时长,单位秒 |
direction | 呼叫方向,传 1 |
success | 成功回调 |
failure | 失败回调 |
示例代码
[self.accessControlService recordTimeWithCommunityId:"community_id" roomId:@"room_id" deviceId:@"device_id" callTime:1629890889000 talkTime:10 direction:1 success:^{
NSLog(@"record time success");
} failure:^(NSError * _Nonnull error) {
NSLog(@"record time failure: %@", error.localizedDescription);
}];
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈