更新时间:2022-02-17 06:56:59下载pdf
云可视对讲功能,是指 App 和云可视设备(监控、门禁)做通信,提供视频查看、语音对讲、远程开门等功能,需配合涂鸦 智能生活 IPC SDK 一起使用。
利用云可视管理类,加载配置项,在成功回调里,初始化涂鸦摄像机,直接连接视频流进行实时查看即可。
主动查看视频的流程:
主动查看视频与监控设备流程一致,利用云可视管理类,加载配置项,在成功回调里,初始化涂鸦摄像机,直接连接视频流进行实时查看即可。
被动接听设备呼叫的流程:
您需要结合 IPC SDK 使用,IPC SDK 建议接入版本:
implementation 'com.tuya.smart:tuyasmart-ipcsdk:3.27.5'
可视对讲功能入口管理,包括加载设备配置项、注册设备通信监听器、查询监控设备管理类、查询可视门禁设备管理器等功能。
示例代码
ITuyaCommunityVisualSpeak visualSpeak = TuyaCommunitySDK.getCommunityVisualSpeakInstance();
App 与设备进行音视频连接前,先调用此接口查询设备配置项,回调成功时继续后面流程。
接口说明
void loadConfig(@NonNull String deviceId, @Nullable String gatewayId, ITuyaCommunityCallback callback);
参数说明
参数 | 说明 |
---|---|
deviceId | 设备 ID,非空 |
gatewayId | 如果设备在网关下,传网关 ID,否则传null |
callback | 回调 |
示例代码
if (visualSpeak != null) {
visualSpeak.loadConfig(deviceId, null, new ITuyaCommunityCallback() {
@Override
public void onFailure(String s, String s1) {
L.e(TAG, "[loadConfig] onFailure:" + s1);
}
@Override
public void onSuccess() {
L.d(TAG, "[loadConfig] onSuccess");
Intent intent = new Intent(VisualSpeakMainActivity.this, VisualSpeakVideoActivity.class);
startActivity(intent);
}
});
}
注册此监听器后,等设备端有消息推送到 App 时可以通过收到回调,如设备呼叫 App 事件,设备挂断事件等。
接口说明
//注册监听器
void registerVisualSpeakCommunicationListener(IOnVisualSpeakDeviceCommunicationListener listener);
//移除监听器
void unRegisterVisualSpeakCommunicationListener(IOnVisualSpeakDeviceCommunicationListener listener);
代码示例
visualSpeak.registerVisualSpeakCommunicationListener(new IOnVisualSpeakDeviceCommunicationListener() {
@Override
public void receiveDeviceMessage(TYVisualSpeakCommunicationType tyVisualSpeakCommunicationType, TYDeviceMsgDataBean tyDeviceMsgDataBean) {
switch (tyVisualSpeakCommunicationType) {
case DEVICE_CALLING:
break;
case DEVICE_CALL_OTHER_APP_ANSWER:
break;
case DEVICE_CALL_CANCEL:
break;
case DEVICE_CALL_TIMEOUT:
break;
case DEVICE_CALL_HANGUP:
break;
case TALKING_TIMEOUT:
break;
case UNKNOWN:
default:
break;
}
}
});
TYVisualSpeakCommunicationType
说明
类型 | 说明 |
---|---|
DEVICE_CALLING | 设备正在呼叫 APP |
DEVICE_CALL_OTHER_APP_ANSWER | 设备呼叫App端,已有其他App端接听 |
DEVICE_CALL_CANCEL | 设备取消呼叫 |
DEVICE_CALL_TIMEOUT | 设备呼叫超时 |
DEVICE_CALL_HANGUP | 设备主动挂掉通话 |
TALKING_TIMEOUT | 通话超时自动挂断 |
UNKNOWN | 未知错误 |
TYDeviceMsgDataBean
说明
字段 | 说明 |
---|---|
deviceId | 设备 ID |
reqType | 呼叫类型 |
sn | 通话唯一识别号 |
通过此管理类,查询可视门禁设备列表,进行远程开门,查询可视门禁设备状态,保存通话记录等操作。
接口说明
ITuyaCommunityAccessControl getAccessControlManager();
通过此管理类,查询监控设备列表等其他操作。
接口说明
ITuyaCommunityPublicMonitor getPublicMonitorManager();
通过 App 去查看安装在公共区域的监控设备。
通过此 API 查询用户有权限查看的公区监控设备。
接口说明
void getPublicMonitorList(String communityId,
String roomId,
ITuyaCommunityResultCallback<ArrayList<TYMonitorDeviceBean>> callback);
参数说明
参数 | 说明 |
---|---|
communityId | 小区ID |
roomId | 房间ID |
callback | 回调 |
TYMonitorDeviceBean
数据类说明
字段名 | 字段类型 | 说明 |
---|---|---|
gatewayId | String | 网关 ID |
deviceId | String | 设备 ID |
deviceStatus | Int | 设备当前在线状态 1:在线 0:离线 |
deviceName | String | 设备名称 |
deviceThumbnailsUrl | String | 设备视频缩略图 |
对于可视门禁,有两个功能:
通过此接口查询用户有权限的门禁设备列表。
接口说明
void getAccessControlList(String communityId,
String roomId,
ITuyaCommunityResultCallback<List<TYVisualSpeakDeviceBean>> callback);
参数说明
参数 | 说明 |
---|---|
communityId | 小区ID |
roomId | 房间ID |
callback | 回调 |
TYVisualSpeakDeviceBean
数据类说明
字段名 | 字段类型 | 说明 |
---|---|---|
deviceId | String | 设备 ID |
roomId | String | 房间 ID |
deviceName | String | 设备名称 |
仅主动查看门禁视频时对次数做限制,平台端可以配置用户可查看门禁次数,通过此接口查询,返回的数值(Integer)表示当日可查看视频次数。
接口说明
void getAccessControlViewableTimes(String communityId,
String roomId,
String deviceId,
ITuyaCommunityResultCallback<Integer> callback);
参数说明
参数 | 说明 |
---|---|
communityId | 小区ID |
deviceId | 设备ID |
roomId | 房间ID |
callback | 回调 |
使用场景为设备呼叫 App 端当发送推送消息时,有时候用户点击推送进去的时候设备已经不在呼叫状态,因此需要调用此接口查询设备状态,当设备在呼叫状态时,才进行连接。
接口说明
void getAccessControlStatus(String communityId,
String roomId,
String deviceId,
String sn,
ITuyaCommunityResultCallback<TYVisualSpeakCommunicationType> callback);
参数说明
参数 | 说明 |
---|---|
communityId | 小区 ID |
deviceId | 设备 ID |
roomId | 房间 ID |
sn | 通话唯一识别号 |
callback | 回调 |
向设备发送开门指令。
接口说明
void openDoor(String communityId, String roomId, String deviceId, final ISuccessFailureCallback callback)
参数说明
参数 | 说明 |
---|---|
communityId | 小区ID |
deviceId | 设备ID |
roomId | 房间ID |
callback | 回调 |
当用户点击接听呼叫时,建立音频流连接,连接成功后调用此接口通知设备 App 已接听。
接口说明
void accept(String deviceId);
参数说明
参数 | 说明 |
---|---|
deviceId | 设备ID |
设备呼叫 App 端,拒绝接听通话。
接口说明
void reject(Map<String, String> params, final ISuccessFailureCallback callback);
参数说明
参数 | 说明 |
---|---|
params | 携带数据的Map对象 |
callback | 回调 |
params 参数说明
参数 | 说明 |
---|---|
device_id | 设备 ID |
community_id | 小区 ID |
room_id | 房间 ID |
sn | 通话唯一识别号 |
示例代码
if (communityAccessControl != null) {
Map<String, String> map = new HashMap<>();
map.put("device_id",deviceId);
map.put("community_id",communityId);
map.put("room_id",roomId);
map.put("sn",sn);
communityAccessControl.reject(map, new ISuccessFailureCallback() {
@Override
public void onSuccess() {
}
@Override
public void onFailure(String s, String s1) {
}
});
}
当用户挂断或者收到设备挂断消息时,调用此接口记录通话时长。
接口说明
void hangUp(Map<String, String> params, final ISuccessFailureCallback callback);
参数说明
参数 | 说明 |
---|---|
params | 携带数据的 Map 对象 |
params
参数说明
参数 | 说明 |
---|---|
device_id | 设备 ID |
community_id | 小区 ID |
room_id | 房间 ID |
call_time | 通话开始时间戳 |
talk_time | 对讲时长,单位为秒 |
direction | 呼叫方向,传 “1” |
示例代码
long startTime= System.currentTimeMillis();
int talkTime= 20;
if (communityAccessControl != null) {
Map<String, String> map = new HashMap<>();
map.put("device_id",deviceId);
map.put("community_id",communityId);
map.put("room_id",roomId);
map.put("call_time",startTime);
map.put("talk_time",talkTime);
map.put("direction","1");
communityAccessControl.hangUp(map, new ISuccessFailureCallback() {
@Override
public void onSuccess() {
}
@Override
public void onFailure(String s, String s1) {
}
});
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈