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

返回值

例子