extalk - 合宙对讲扩展库
作者:梁健
一、概述
extalk 是 airtalk 的扩展库,简化了使用方法,扩展了部分应用,建议使用此库. 音频框架如下:
合宙仅Air780EHV 内置音频编解码芯片,其他支持音频的功能需要外置音频编解码芯片。
目前合宙所有的型号均需要外置音频放大器(PA)才可将音频输出。
二、核心示例
local extalk = require "extalk"
-- 配置并初始化
extalk.setup({
key = "your_product_key",
heart_break_time = 30,
contact_list_cbfnc = function(dev_list) end,
state_cbfnc = function(state) end
})
-- 发起对讲
extalk.start("remote_device_id")
-- 结束对讲
extalk.stop()
三、常量详解
- extalk.START = 1 -- 通话开始,当对讲发起成功后将产生这个回调
- extalk.STOP = 2 -- 通话结束,当管理平台发过来停止对讲指令后,产生这个回调
- extalk.UNRESPONSIVE = 3 -- 对端未响应,当发起对讲请求后,对端没有响应,将产生此回调
- extalk.ONE_ON_ONE = 5 -- 一对一来电回调
- extalk.BROADCAST = 6 -- 对端过来广播,产生的回调
四、函数详解
extalk.setup(configs)
功能
初始化airtalk,配置项目KEY,心跳间隔,联系人回调函数,状态回调函数
注意事项
1. 该接口只能也只需启动一次
2. 项目key,通过https://iot.openluat.com/ 网站获取,需要和main.lua 的PRODUCT_KEY,保持一致,可用来升级,建立群组等
3. 心跳间隔,定期会发送电池电量,以及信号值的信息
参数 configs
参数含义:音频的参数配置,参数为table类型,table内容格式说明如下:
{
key = ,
-- 参数含义:此项目的识别号
-- 数据类型:string;
-- 取值范围:无;
-- 是否必选:必选传入此参数;
-- 注意事项:需要和main.lua 的PRODUCT_KEY,保持一致
heart_break_time = ,
-- 参数含义:心跳上报时间(单位s);
-- 数据类型:number;
-- 取值范围:>0
-- 是否必选:必选;
-- 注意事项:间隔过段,会引起功耗上升
contact_list_cbfnc = ,
-- 参数含义:联系人列表的回调函数;
-- 数据类型:function;
-- 取值范围:无
-- 是否必选:必须;
-- 注意事项:必须等到联系人列表返回,才可进行呼叫业务
state_cbfnc = ,
-- 参数含义:对讲状态的回调函数;
-- 数据类型:function;
-- 取值范围:无
-- 是否必选:必须;
-- 注意事项:回调的参数,可见上方的常量参数
}
数据类型:table;
取值范围:参考参数含义内各字段说明
是否必选:可选传入此参数;
注意事项:暂无;
返回值
返回true ,表示成功,返回false 表示失败
示例
-- extalk配置参数
local extalk_configs = {
key = PRODUCT_KEY,
heart_break_time = 120, -- 心跳间隔(单位秒)
contact_list_cbfnc = contact_list_callback,
state_cbfnc = speech_state_callback,
}
if extalk.setup(extalk_configs) then
log.info("airtalk初始化成功")
end
extalk.start(id)
功能
开始一对一呼叫,或者一对多呼叫
注意事项
1. 当没有鉴权成功,将无法呼叫
2. 如果当前正在通话,将无法呼叫
参数
id , -- 参数含义:如果填入可以呼叫的对端ID,则进行一对一的单独通话,如果不填入或者填入nil 则对整个群组全部广播; -- 数据类型:number/nil; -- 取值范围: 无 -- 是否必选:非必须; -- 注意事项:如果需要一对一通话,填入的数据只能是extalk.setup 的contact_list_cbfnc 回调函数返回ID
返回值
返回true ,表示成功,返回false 表示失败
示例
extalk.start("868123457234234") -- 一对一单呼
extalk.start() -- 对群组内所有设备进行广播
extalk.stop()
功能
停止一对一或广播对讲
注意事项
无 参数
无
返回值
返回true ,表示成功,返回false 表示失败
示例
extalk.stop() -- 停止对讲
五、产品支持说明
780epm,780ehv,780eth,8000 全系列均支持