双向视频对讲

更新时间:2025-12-16 10:07:49下载pdf

双向视频对讲 是 IPC 设备在有显示屏幕的基础上, 为 IPC 与 App 或者 IPC 与 IPC 能进行双向视频通话。

功能特性

通常 IPC 负责采集图像并且发送到另一端显示, 双向指的是,IPC 设备能从对端接收视频流在自己的显示屏上播放。

实际传输采用 P2P 的方式。

关联组件

  • svc_tmm_link
  • svc_ipc_tmm_control

API

初始化双向视频对讲控制模块

主要包括初始化资源和创建线程。

/*****************************************************************************
 * @brief      tuya tmm control 初始化.
 *
 * @param      cb: 事件回调函数
 * @param      priv_data: 用户数据,通过 callback 返回
 * @param      call_timeout_s: 设定呼叫超时时间,单位秒, <= 0 使用默认 30s
 *
 * @return
 *     - 0, success
 *     - 非0 error
*****************************************************************************/
OPERATE_RET tuya_tmm_control_init(TUYA_TMM_CONTROL_EVT_CB cb, VOID* priv_data, INT_T call_timeout_s);

反初始化双向视频对讲控制模块

主要包括销毁资源和退出线程。

/*****************************************************************************
 * @brief      tuya tmm control 注销.
 *
 * @return
 *     - 0, success
 *     - 非0 error
*****************************************************************************/
OPERATE_RET tuya_tmm_control_deinit(VOID);

主动呼叫目标设备

/*****************************************************************************
 * @brief      tuya tmm control 主叫
 *
 * @param      target_device: 目标设备
 * @param      category: 本设备所属品类,可以为""
 * @param      stream_type: 通话流类型
 * @return
 *     - 0, success
 *     - 非0 error
*****************************************************************************/
OPERATE_RET tuya_tmm_control_call(CHAR_T *target_device, CHAR_T *category, TUYA_TMM_CONTROL_STREAM_TYPE_E stream_type);

获取可以呼叫的设备列表

/** @brief get the paired device list
 * @warning this will get the local list, no http request to cloud
 * @return the list head of paired device list, use tuya_list_for_each to visit, the type is TMM_ASSOC_DEV_T
 */
LIST_HEAD* tuya_tmm_link_get_paird_dev_list();

收到对端发起的呼叫请求时,接收对端的呼叫请求

/*****************************************************************************
 * @brief      tuya tmm control 接通
 *
 * @return
 *     - 0, success
 *     - 非0 error
*****************************************************************************/
OPERATE_RET tuya_tmm_control_answer(VOID);

收到对端发起的呼叫请求时,拒绝对端的呼叫请求

/*****************************************************************************
 * @brief      tuya tmm control 来电拒接
 *
 * @return
 *     - 0, success
 *     - 非0 error
*****************************************************************************/
OPERATE_RET tuya_tmm_control_reject(VOID);

主动发起呼叫对端设备后,在收到对端的应答前,主动取消呼叫

/*****************************************************************************
 * @brief      tuya tmm control 取消呼叫
 *
 * @return
 *     - 0, success
 *     - 非0 error
*****************************************************************************/
OPERATE_RET tuya_tmm_control_cancel(VOID);

主动挂断当前的通话

/*****************************************************************************
 * @brief      tuya tmm control 挂断
 *
 * @return
 *     - 0, success
 *     - 非0 error
*****************************************************************************/
OPERATE_RET tuya_tmm_control_hangup(VOID);

通知服务端,本设备停止呼叫和被呼叫

/*****************************************************************************
 * @brief      tuya tmm control 异常停止
 *
 * @return
 *     - 0, success
 *     - 非0 error
*****************************************************************************/
OPERATE_RET tuya_tmm_control_stop(VOID);

收到对端呼叫请求后, 通知对端本设备忙碌中,拒绝接听

/*****************************************************************************
 * @brief      tuya tmm control 设备忙
 *
 * @return
 *     - 0, success
 *     - 非0 error
*****************************************************************************/
OPERATE_RET tuya_tmm_control_busy(VOID);