立项背景与目标:
为了解决移动作业,需要方便录像、记录信息、快速寻求解决方案、呼叫平台等问题。
软件功能、核心功能模块的介绍:
该项目分为基于Android平台的硬件设备及配套APP。
硬件端:
1.知识库问答功能,问答相关知识库的问题,方便问题及时得到解决方案;
2.语音对讲功能,方便与平台及时联系;
3.类似摄像监控一样的录像、实时推流、抓图等功能实现;
4.开发接口,供局域网Web调用,用来调整工牌配置参数。
5.语音识别、语音合成功能,可以使用语音进行知识库问答。
配套APP:
1.设备录像、实时视频、抓图等信息查看;
2.与设备进行对讲;
3.知识库问答,支持语音问答;
硬件设备开机上线后,就可以通过配套APP查看在线视频、抓图、和设备相互呼叫。
同时硬件设备也可以通过按键操作,发起呼叫、实时抓图。
   硬件端:
1.程序入口模块:仅实现入口程序,无其他功能;
2.公共模块:提供公共的服务、缓存、实体类、数据库等;
3.监控模块:负责实现监控、录像、视频推流等一系列功能;
4.对外接口模块:提供外面接口调用,用于修改设备配置;
5.对讲模块:实现对讲功能;
6.讯飞语音模块:实现语音识别、语音合成功能;
7.主要模块:知识库问答及其他界面实现。
配套APP:
对比以上少了监控模块及对外接口模块。
以上主要运用的的技术是:音视频开发、Room数据库开发、EventBus事件通知、协程、Retrofit、Kotlin、Ktor接口开发、讯飞语音功能及一些“我”常用的UI框架。
我负责的内容:
硬件端:除前端配置界面及功能,I1和GB28181协议对接部分的所有内容。
移动端:独立完成。
我遇到的难点、坑及解决方案:
音频问题:
问题:对讲、实时视频、语音识别都需要使用麦克风,单麦克风是独享的,且视频不能中断,所以不能随意开关麦克风。
解决:自定义麦克风数据采集器,自定义分发机制,将数据备份给所有要使用的功能模块。
各种状态变化:
问题:各种状态变化时的逻辑处理问题,比如唤醒、问答、问答中、录像中、对讲中等。
解决:画图梳理逻辑,建立状态管理机制,统一调控,判断、处理。