# 设备互通
# 简介
在 快速开始 章节中我们介绍了两个 乐鑫 ESP32-S3 设备之间实现一对一通话的的集成过程。本章节将简单介绍如何实现 乐鑫 ESP32-S3 和 Android 设备之间的一对一音视频通话。主要分为 Android 设备作为主叫 和 乐鑫 ESP32-S3 设备作为主叫两个场景,两个场景下的集成方式稍有不同。
# Android 设备作为主叫
乐鑫 ESP32-S3 设备的集成参考 快速开始 。Android 设备端作为主叫时的具体集成步骤如下:
在初始化通话所需的时候,调用 generateByMode (opens new window) 函数生成媒体配置参数 MediaConfig (opens new window) 对象。传入的参数即为媒体模式,不同的终端设备需要选择其对应的模式。
终端 模式 Android 手机 选择 MODE_IOT 模式 乐鑫 ESP32-S3 设备 / 调用 updateMediaConfig (opens new window) 更新媒体参数。
调用 call (opens new window) 发起通话。
其中 call 函数的第三个参数
callParam
需要传入自定义的唯一ticket
以便服务器精确标识会话。ticket (opens new window) 是指开发者自定义的 64 位的唯一 ID。对呼时, 必须使用相同的ticket, 以便服务器精确标识会话。在发起通话的同时发送长连接至被叫,通知被叫(需要开发者自行实现)。
调用 startSelfVideo (opens new window) 创建本地视频画面,SDK 会发送手机端的视频数据到服务器。
若对呼成功则触发 onCallItemUpdate (opens new window) 回调,通话通道状态变为 STATE_CONNECTING (opens new window)。
在服务器收到来自乐鑫 ESP32-S3端的视频数据后,服务器会向手机端发送视频数据。此时手机端会再次触发 onCallItemUpdate (opens new window) 回调,通话通道状态变为 STATE_TALKING (opens new window),调用 startOtherVideo (opens new window) 渲染远端视频画面。
# 乐鑫 ESP32-S3 设备作为主叫
当手机作为被叫,乐鑫 ESP32-S3 设备作为主叫的时候,时序图如下:
乐鑫 ESP32-S3 设备的集成参考 快速开始 。Android 设备端作为被叫时的具体集成步骤如下:
在初始化通话所需的时候,调用 generateByMode (opens new window) 函数生成媒体配置参数 MediaConfig (opens new window) 对象。传入的参数即为媒体模式,不同的终端设备需要选择其对应的模式。
终端 模式 备注 Android 手机 选择 MODE_IOT_LARGE 模式 大屏设备(手机、平板)与乐鑫 ESP32-S3 Android 手表 选择 MODE_IOT_SMALL 小屏设备(手表)与乐鑫 ESP32-S3 乐鑫 ESP32-S3 设备 / 在收到来自乐鑫ESP32-S3端的长连接通知,并触发了 onCallItemAdd (opens new window) 回调时,调用 call (opens new window) 应答通话。
(在回调中调用 call 函数将提前接通流程,减少画面渲染过程中的时间) 其中 call 函数的第三个参数
callParam
需要传入自定义的唯一ticket
以便服务器精确标识会话。ticket (opens new window) 是指开发者自定义的 64 位的唯一 ID。对呼时, 必须使用相同的ticket, 以便服务器精确标识会话。若对呼成功则触发 onCallItemUpdate (opens new window) 回调,通话通道状态变为 STATE_CONNECTING (opens new window)。
调用 startSelfVideo (opens new window) 创建本地视频画面,SDK 会发送手机端的视频数据到服务器。
在服务器收到来自乐鑫ESP32-S3端的视频数据后,服务器会向手机端发送视频数据。此时手机端会再次触发 onCallItemUpdate (opens new window) 回调,通话通道状态变为 STATE_TALKING (opens new window),调用 startOtherVideo (opens new window) 渲染远端视频画面。