跳转至

airtalk - 设备之间,设备与PC、手机,对讲处理

示例

-- 本库仅部分BSP支持
-- 主要是 Air8000 和 Air780EXX 系列
-- 详细用法请参考demo

常量

常量 类型 解释
airtalk.PROTOCOL_MQTT number 语音数据用MQTT传输
airtalk.MODE_PERSON number 对讲工作模式1对1
airtalk.MODE_GROUP_SPEAKER number 对讲工作模式1对多的发起者,录音上行,不播放
airtalk.MODE_GROUP_LISTENER number 对讲工作模式1对多的接收者,下行播放,不录音
airtalk.EVENT_OFF_LINE number airtalk离线
airtalk.EVENT_ON_LINE_IDLE number airtalk在线处于空闲状态
airtalk.EVENT_PLAY_START number airtalk下行播放开始
airtalk.EVENT_PLAY_END number airtalk下行播放结束
airtalk.EVENT_RECORD_START number airtalk录音上行开始
airtalk.EVENT_RECORD_END number airtalk录音上行结束
airtalk.EVENT_AUDIO_START number airtalk audio启动,只要上行和下行有一个开始就启动
airtalk.EVENT_AUDIO_END number airtalk audio停止,上行和下行都结束才停止
airtalk.EVENT_ERROR number airtalk发生异常,后续param为异常值
airtalk.EVENT_ERROR number airtalk发生异常,长时间没有收到音频数据

airtalk.config(protocol,netc,cache_time,encode_cnt,decode_cnt,audio_pm_mode_when_stop,no_data_to)

配置airtalk参数

参数

传入值类型 解释
int 语音数据传输协议类型,见airtalk.PROTOCOL_XXX
userdata network_ctrl或者mqtt客户端,如果协议是mqtt类型,传入mqtt.create返回值,如果是其他类型,传入socket.create的返回值
int 缓冲时间,单位ms,默认500ms,值越小,delay越小,抗网络波动能力越差
int 单次编码帧数,默认值5,不能低于2,不能高于5
int 单次解码帧数,如果缓冲没有足够的帧数,自动补0,默认值5,不能低于2,不能高于10,不能低于encode_cnt, decode_cnt * 4 必须是 encode_cnt的整数倍
int 对讲停止后,audio的pm状态,默认是audio.SHUTDOWN
int 多长时间判定对端长时间无数据发送,超过这个时间会上报event_error,用户决定接下来的操作。默认5000ms,单位ms
return nil

返回值

例子

mqttc = mqtt.create(nil,"120.55.137.106", 1884)
airtalk.config(airtalk.PROTOCOL_MQTT, mqttc)

airtalk.on(func)

注册airtalk事件回调

参数

传入值类型 解释
function 回调方法

返回值

返回值类型 解释
nil 无返回值

例子

airtalk.on(function(event, param)
    log.info("airtalk event", event, param)
end)
--[[
event具体见EVENT_XXX
param说明:
目前只有EVENT_ERROR会有param值,为ERROR_XXX
]]

airtalk.start()

airtalk启动

参数

传入值类型 解释
return nil

返回值

例子

mqttc = mqtt.create(nil,"120.55.137.106", 1884)
airtalk.config(airtalk.PROTOCOL_MQTT, mqttc)
airtalk.on(function(event, param)
    log.info("airtalk event", event, param)
end)
airtalk.start()

airtalk.set_ssrc(ssrc)

配置airtalk RTP协议中的SSRC

参数

传入值类型 解释
int/string ssrc,可以是int也是可以8字节string
return nil

返回值

例子



airtalk.set_topic(topic)

配置airtalk mqtt类型语音数据的专用topic

参数

传入值类型 解释
string topic
return nil

返回值

例子

airtalk.set_topic("xxxxxxxxxx")

airtalk.speech(on_off, mode, sample)

airtalk对讲工作启动/停止

参数

传入值类型 解释
boolean 启停控制,true开始,false停止
int 工作模式,见airtalk.MODE_XXX
int 音频采样率,目前只有8000和16000,默认16000
return nil

返回值

例子

--1对1对讲开始
airtalk.speech(true,airtalk.MODE_PERSON,16000)
--作为发起方,进行1对多对讲
airtalk.speech(true,airtalk.MODE_GROUP_SPEAKER,16000)
--作为接收方,进行1对多对讲
airtalk.speech(true,airtalk.MODE_GROUP_LISTENER,16000)
--对讲停止
airtalk.speech(false)

airtalk.debug(on_off)

airtalk的详细调试信息开关

参数

传入值类型 解释
boolean 调试信息开关,true打开,false关闭
return nil

返回值

例子