电子说
今天特别分享VoLTE通话功能示例,感兴趣的朋友一起来学。
VoLTE通话功能示例
Air201模组的4G通信功能,通过VoLTE技术实现高清语音通话,支持音频编解码、硅麦输入和喇叭输出。在通话过程中,声音信号通过MIC捕捉并转换为数字音频数据,经4G网络实时传输至对方设备。
这一应用广泛适用于物联网设备中的远程通信、语音交互等场景,提供便捷、高效的通话服务。
Air201最新资料下载:
www.air201.cn
注:Air201最大可支持8Ω 1.2W功率喇叭(默认),或者4Ω 2.5W功率喇叭。
本文将通过Air201+喇叭+扩展板进行相关演示,教你使用VoLTE通话功能示例,在实际开发中可根据具体情况灵活应用。
一. 搭建环境
新同学建议先看前期的基础知识相关教程,更有助于理解和操作。
可以在LuaTools项目管理中新建一个项目,重新选择底层CORE和脚本;或者在原有项目的基础上,不更换CORE,将原来的脚本删除,添加为demo/cc的脚本。
1.1 硬件准备:
Air201 PCBA
Air201-BTB扩展板(带一个FPC线)
配套USB_BOOT小板、喇叭
可正常上网及通话的SIM卡
带有数据通信功能的数据线
Win10及以上PC
Air201通过FPC线连接BTB扩展板,使用扩展板上的按键,接线如下所示:
1.2 软件准备:
LuaTools调试工具:
https://docs.openluat.com/Luatools
最新固件:https://gitee.com/openLuat/LuatOS-Air201/tree/master/core
最新脚本:
https://gitee.com/openLuat/LuatOS-Air201/tree/master/demo/cc
API接口:
https://docs.openluat.com/air201/luatos/api/core/cc
1.3 烧录操作:
由于Air201单板子没有复位键和BOOT键,所以数据线与Air201开发板之间还需要接一个USB_BOOT板(Air201套件里已包含)。
将Air201通过USB_BOOT小板连接电脑,如下图所示:
1.3.1 根据下方操作进行烧录
此时就需要大家先点击Luatools工具上的【下载脚本】或【 下载底层和脚本】,再执行下方操作了。
新同学请先学习LuaTools使用和烧录教程:
https://docs.openluat.com/Luatools/
开发板处于未开机状态:
此时先按住下载模式按键(BOOT键)不放,再长按开机键(POW键)开机。若不出意外开发板将会进入下载模式,LuaTools工具下载进度条会开始跑,这时便可以松开BOOT键和POW键,等到工具提示下载完成即可。
开发板已经处于开机状态:
此时可以先按住BOOT键不放,再短按复位键(RST键)后开发板会重启并进入下载模式。
1.3.2 不同模式下的端口显示
正常开机模式:
下载模式:
二. 示例代码
2.1 初始化驱动ES8311
Air201板子自带了ES8311音频编解码芯片(Audio Codec),所以硬件配置参数是固定的。
ES8311使用了I2C0,电源脚为GPIO2,PA控制脚为GPIO23:
2.2 订阅通话状态
通过sys.subscribe函数订阅了一个名为CC_IND的事件。当这个事件被触发时,会调用后面的匿名函数,传入一个参数 state,表示当前的通话状态。
2.3 注册音频事件回调函数
2.4 通讯录列表
2.5 通话管理状态机
1)IDLE(空闲状态):
系统处于等待状态,准备接收来电或拨号。
转移条件:
2)WAIT_CALLING(等待呼叫状态):
系统在等待后续的拨号操作。
转移条件:
3)CALLING(拨号中状态):
正在拨打电话。
转移条件:
4)PREPARE(准备通话状态):
准备接听来电或拨打电话。
转移条件:
5)CONNECTING(通话中状态):
准备接听来电或拨打电话。
转移条件:
6)DISCONNECTING(挂断流程状态):
处理挂断电话的流程。
转移条件:
2.6 呼叫,挂断按键配置
2.7 运行结果展示
通过LuaTools工具,查看相关运行结果。
1)模组主动拨打电话
空闲状态下按下按键1,默认拨打通讯录第一位联系人,日志打印显示如下:
2)模组主动挂断电话
通话状态下按下按键2,挂断电话,日志打印显示如下:
三. 总结
CC库的通话管理API接口共同构成了通话控制的核心功能,使开发者能够高效地管理通话的启动、挂断、接听、参数配置以及附加的通话处理功能。
通过合理利用这些接口,开发者可以构建出具备出色通话体验的应用程序,满足用户在多种通话场景下的需求。同时,也需关注接口之间的协同配合,以确保通话功能的流畅性和可靠性。
今天的分享就到这里了~
全部0条评论
快来发表一下你的评论吧 !