基于Cordova的跨平台在线教育移动终端的制作方法

文档序号:13207131阅读:233来源:国知局
基于Cordova的跨平台在线教育移动终端的制作方法

本发明涉及在线教育移动终端设计领域,尤其涉及一种基于cordova的跨平台在线教育移动终端设计方法。



背景技术:

近年来,国家在宏观政策层面对教育行业予以高度重视,云计算等相关技术被在线教育行业广泛应用和推广,终身学习的理念激发人们对知识和技能的渴求,在众多因素的作用下,在线教育市场迎来了爆发式的增长。

根据中国互联网络信息中心(cnnic)发布的《第40次中国互联网络发展状况统计报告》,截至2017年6月,我国在线教育用户规模达1.44亿,较2016年底增加662万人;手机在线教育用户规模为1.20亿,与2016年底相比增长2192万人,增长率为22.4%。移动教育正逐步成为在线教育的主流,cnnic调查数据显示,83.3%的在线教育用户分布在手机端。与pc端相比,移动教育能提供个性化的学习场景,借助移动设备的触感、语音输出等方式,构建出更加个性化的人机交互场景,提升学习本身的趣味性,尤其对于题库类、数字阅读类、音频类在线教育产品,更适合从移动端切入。长远来看,基于移动终端,拥有优质教学内容、能寓教于乐的教育产品,在市场上更有优势。

作为学习教育类app的杀手锏,拍照搜题功能的强弱是一款软件好用与否的重要评判标准。互联网+教育的真正魅力就在于能够无视地域、距离、时间等客观因素,使学生能够通过app进行自主学习。在线教育平台的相互交流学习功能也是一个重点,学习者能通过app找到与自己相同水平的学习者相互交流学习和竞技。同样,功能再强大,如果没有一个美丽的界面也很难得到同学们的关注,用户界面越发受到用户的重视,清晰的逻辑及友好的交互已成每一款app的必备。

为了实现上述功能,涉及到与终端底层的硬件交互,如摄像头、传感器、麦克风以及内部存储等。但是,当前移动终端设备有各种品牌,拥有不同的系统平台,目前大部分企业需要为在线教育移动终端开发适合多种平台的软件,需要根据不同平台的api进行原生应用的开发,也就是说,为了适配不同的操作系统,企业开发同一款应用就需要用到至少2到3个领域的程序员,而且每个平台的版本可能还会有一些差别,分别在各自的移动操作系统上进行原生应用的开发,会带来昂贵的开发费用、耗费大量人力、增加修改维护难度,若仅仅对部分功能进行细微修改,也不能避免在各个操作系统上单独进行版本改动。这就直接导致了用户体验下降,开发难度上升,以及开发进度不统一,反而提高了开发一款应用的成本。如果有种技术可以击穿这种壁垒,实现“一次编码,四处运行”,对于节约开发成本、提高开发效率都有很关键的作用。于此同时,可以降低开发的门槛,可以引入更多的开发者,提高初学者的开发热情。

为了降低开发成本,缩短开发周期,就需要寻求一种跨平台的移动应用开发解决方案。当前主流的跨移动平台应用开发解决方案之一是利用跨移动平台开发框架,如apachecordova、titanium、corona等,这类应用能够抽取出大部分公共模块,并结合对本地操作系统api的支持,比较节省开发成本。对于在线教育移动终端,单纯利用开发框架,也未能很好地满足移动终端应用程序的功能实现。为此,本发基于cordova框架进行扩展,以满足移动教育终端设计更复杂的功能需求。



技术实现要素:

本发明的目的在于针对上述在线教育移动终端应用的多平台开发问题,提供一种基于cordova的跨平台在线教育移动终端设计方法。

为了实现上述目的,本发明采用的技术方案如下。

一种基于cordova的跨平台在线教育移动终端,包括:(1)cordova框架模块;(2)web层逻辑模块;(3)拍照搜题扩展模块;(4)视频录制与自识别扩展模块;(5)摇一摇功能扩展模块。

整个终端通过cordova框架支撑,分为web层、cordova层以及native适配层,其中native适配层提供底层功能支持,cordova层包括各所述扩展模块;web层提供各扩展模块的javascript封装,以及上层的功能逻辑。

进一步地,所述cordova框架模块,包含cordova核心组件以及插件,用于支持访问移动设备基本固件,提供web层javascript与native层交互的桥梁,向上提供javascript接口调用,并能在native适配层执行完毕之后,通过callback回调javascript中的回调函数。

进一步地,所述web层逻辑模块,包含基于html、css、javascript技术的用户界面模块、相应的页面逻辑模块、可以调用底层native功能的cordova调用模块,同时包含对前面所述扩展模块的javascript接口封装。

进一步地,所述拍照搜题扩展模块,具体包含拍照模块、图片文字识别模块与内容搜索模块。

上述拍照模块,通过调用cordova的camera插件模块功能完成对本地移动设备的摄像头调用,并传递获取的图片给图片文字识别模块。

上述图片文字识别模块,通过接入第三方orc文字识别接口,对拍照获取的图片进行文字识别,获取识别文字结果,并传递给内容搜索模块。

上述内容搜索模块,将文字识别的字符作为关键字,调用搜索引擎搜索整个题库,并根据相关度返回相应的题目信息。

进一步地,所述视频录制与自识别扩展模块,具体包含视频录制模块、语音文字识别模块、自动字幕模块与自动分类模块。

上述视频录制模块,通过cordova的mediacapture插件模块功能,调用视频捕捉函数来进行视频录制,并返回录制的结果。

上述语音文字识别模块,通过封装第三方asr语音识别sdk并调用相关接口,对录制的视频进行语音文字识别,并返回带时间戳的识别结果。

上述自动字幕模块,对语音文字识别结果进行格式化处理,生成视频字幕文件,并提供预览与校正功能。

上述自动分类模块,对语音文字识别结果进行关键字对比,自动分析获取视频的主要内容关键字,添加视频标签,对比知识目录对视频分类。

进一步地,所述摇一摇功能扩展模块,具体包括:摇一摇模块、定位模块与匹配模块。

上述摇一摇模块,通过cordova的devicemotion插件模块功能,对移动设备的加速度传感器进行监听,当触发用户触发“摇一摇”动作时,返回一个标志。

上述定位模块,通过cordova的geolocation插件模块功能,获取移动设备的gps信息,并返回该结果。

上述匹配模块,将所有“摇一摇”地用户的位置信息上传到云端,同时通过云端获取该类用户的个人学习情况,然后将处在一定距离内、短时间内也摇过的人进行配对。

进一步地,本发明基于cordova的跨平台在线教育移动终端的具体扩展模块设计如下:

(一)拍照搜题扩展模块

此模块封装了cordova的照相功能、图像文字识别功能、内容搜索匹配功能,完成拍照搜题的整个需求,并提供在web层通过javascript调用该模块的接口。

该模块首先集成cordova的camera插件,然后获取一个全局对象navigator.camera,通过该对象方法getpicture来获取图像,包括通过系统摄像头抓取图像和直接选取本地存储的图像。图像数据获取成功后,该数据被发送到onsuccess回调函数,在该函数内处理图像数据,并将其作为参数传入第三方orc文字识别接口,按照第三方api接口调用说明调用,如通过向第三方api服务地址使用post发送请求。最后接收请求的结果,获取图像中的文字识别结果,然后再将其作为参数,基于本地或第三方题库,通过搜索引擎进行相似度匹配,并根据相似度按序返回匹配题目,最后格式化显示与输出。

基于本模块,上层的web代码可以利用javascript调用来实现拍照搜题功能,而javascript的接口封装通过cordova的exec()接口与底层通信,通过plugin的实际native代码段来实现具体平台上的功能,同时预留接入第三方orc服务的抽象接口,方便接入第三方orc服务。

(二)视频录制与自识别扩展模块

此模块封装了cordova的音视频录制功能、语音文字识别功能、自动生成视频字幕与分类信息功能,同时提供在web层通过javascript调用该模块的接口。

该模块首先集成cordova的mediacapture插件,获取到navigator.device.capture全局对象,调用native层的录像与录音功能进行视频与音频录制。其中capturecallback函数作为方法参数传入,在该函数内完成录制视频与音频的处理,获取视频中的音频并发送到第三方asr语音识别接口,通过标准json格式串行化语音数据和其他参数,并使用post方式上传到第三方asr服务api请求地址,最后通过服务器返回的callback函数获取回调地址,取回识别结果。将该识别结果分别与预定义的标签关键字与分类关键字进行对比匹配,根据重复度与相关度生成该视频的标签生成视频字幕信息与相应的知识章节信息,同时逐句格式化识别结果,添加时间戳与相应格式化信息,按播放时具体语言与样式需求生成视频字幕文件,作为外挂字幕在视频播放时进行载入。

本模块的javascript的接口封装通过cordova的exec()接口与底层通信,通过plugin的实际native代码段来实现具体平台上的功能,同时预留接入第三方asr服务的抽象接口,方便接入第三方asr服务。在web层利用javascript调用来实现视频录制与自识别扩展功能。

(三)摇一摇功能扩展模块

此模块封装了cordova的加速度传感器监听功能与地理位置监听功能、摇一摇配对功能,同时提供在web层通过javascript调用该模块的接口。

该模块集成cordova的devicemotion插件与geolocation插件,生成全局对象navigator.accelerometer和navigator.geolocation。首先通过navigator.accelerometer对象获取并监听设备当前物理加速度数据,并在监听事件中根据任一方向的加速度数据浮动幅度判定是否构成“摇一摇”的情形。达成“摇一摇”事件后,再通过navigator.geolocation对象获取用户当前地理位置,传入onsuccess回调函数,在该函数中,处理获取的地理位置信息并上传到云端。最后在云端按照地区与学习情况对一定事件内参与“摇一摇”的用户进行分类,同类之间随机相互配对,并将配对结果返回。

基于本模块,上层的web代码可以利用javascript调用来实现摇一摇配对功能,通过cordova的exec()接口实现native代码段来实现具体平台上的功能,并封装为javascript调用接口供上层调用。

本发明的有益效果:

由上述技术方案可知,本发明提供的跨平台在线教育移动终端设计方法,基于开源的cordova跨移动平台开发框架,具有以下效果:

其一是使用html,css,javascript开发移动应用,降低移动前端开发的技术门槛;

其二是使用cordova框架插件,使得即使用前端编程语言,也拥有和移动终端原生应用一样的访问移动设备基本固件的能力,如照相机、传感器等。

其三是跨平台性好,满足了一套开发程序可在多个不同的移动操作系统之上运行,降低对各个操作系统分别适配的难题,如果要增加对新的移动平台的支持,只需要对扩展模块进行平台适配工作,即可以共享上层逻辑模块,所以拥有很强的平台扩展性。

其四是使用cordova封装的插件与终端底层硬件交互,大大简化了移动在线教育应用与本地操作系统api交互的编码工作,可以直接通过javascript接口调用扩展模块完成相应的功能,降低开发成本,缩短开发周期。

附图说明

为了更清楚地说明本发明实施实例,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍。

图1为跨平台在线教育移动终端的主要框架模块示意图。

图2为跨平台在线教育移动终端的总体系架构示意图。

图3为拍照搜题扩展模块的架构示意图。

图4为照视频录制与自识别扩展模块的架构示意图。

图5为摇一摇功能扩展模块的架构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明提供的附图,对本发明实施例中的技术方案进行清楚、完整地描述,基于本发明中的实施实例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施实例,都属于本发明保护的范围。

本实例提供一种基于cordova的跨平台在线教育移动终端,框架模块如图1所示,包括:(1)cordova框架模块;(2)web层逻辑模块;(3)拍照搜题扩展模块;(4)视频录制与自识别扩展模块;(5)摇一摇功能扩展模块。

终端体系架构如图2所示,整个终端通过cordova框架支撑,分为web层、cordova层以及native适配层,其中native适配层提供底层功能支持,cordova层包括各所述扩展模块;web层提供各扩展模块的javascript封装,以及上层的功能逻辑。

具体地,cordova框架模块,包含cordova核心组件以及插件,用于支持访问移动设备基本固件,提供web层javascript与native层交互的桥梁,向上提供javascript接口调用,并能在native适配层执行完毕之后,通过callback回调javascript中的回调函数。

具体地,所述web层逻辑模块,包含基于html、css、javascript技术的用户界面模块、相应的页面逻辑模块、可以调用底层native功能的cordova调用模块,同时包含对前面所述扩展模块的javascript接口封装。

进一步地,本发明基于cordova的跨平台在线教育移动终端的扩展模块具体设计步骤如下:

(一)拍照搜题扩展模块

此模块具体包含拍照模块、图片文字识别模块与内容搜索模块,封装了cordova的照相功能、图像文字识别功能、内容搜索匹配功能,完成拍照搜题的整个需求,并提供在web层通过javascript调用该模块的接口,javascript的接口封装通过cordova的exec()接口与底层通信,在exec接口内通过native代码完成各个具体平台相应的功能。根据图3拍照搜题扩展模块的架构图,具体模块设计如下:

拍照模块:首先集成cordova-plugin-camera插件,然后获取一个全局对象navigator.camera,通过该对象方法getpicture来获取图像,包括通过系统摄像头抓取图像和直接选取本地存储的图像,模块返回该图像并通过onsuccess回调函数传递给下一模块。

图片文字识别模块:图像数据获取成功后,该数据被发送到onsuccess回调函数,在该函数内处理图像数据,并创建一个第三方api调用的抽象接口,将图像数据作为参数传入该第三方orc文字识别接口,具体使用时再按照第三方api接口调用说明调用,如通过向第三方api服务地址使用post发送请求。将第三方服务接口调用的处理结果作为模块输出,再次传递给下一模块。

内容搜索模块:从第三方服务接口调用的返回值来接收请求的结果,获取图像中的文字识别结果,然后再将其作为参数,基于本地或第三方题库,通过搜索引擎进行相似度匹配,并根据相似度按序返回匹配题目,最后格式化显示与输出。

(二)视频录制与自识别扩展模块

此模块具体包含视频录制模块、语音文字识别模块、自动字幕模块与自动分类模块,封装了cordova的音视频录制功能、语音文字识别功能、自动生成视频字幕与分类信息功能,也提供在web层通过javascript调用该模块的接口,其javascript的接口封装同上一个模块。根据图4照视频录制与自识别扩展模块的架构图,具体模块设计如下:

视频录制模块:首先集成cordova-plugin-media-capture插件,获取到navigator.device.capture全局对象,使用对象方法capturevideo与captureaudio别调用native层的录像与录音功能进行视频与音频录制。capturecallback回调函数作为方法参数,接收并处理录制的音视频。

语音文字识别模块:在capturecallback函数内部完成录制视频与音频的处理,获取视频中的音频,然后引入第三方asr语音识别接口,通过标准json格式串行化语音数据和其他参数,并使用post方式上传到第三方asr服务api请求地址,最后通过服务器返回的callback函数获取回调地址,取回识别结果。

自动分类模块:预定义多个知识点关键字,然后将第三方asr服务处理识别结果分别与预定义的关键字进行对比匹配,根据重复度与相关度,按照一定的关键字组合规则,生成该视频的标签生成视频标签信息,并归类到相应的知识章节目录。

自动字幕模块:逐句格式化第三方asr服务处理识别结果,添加时间戳与相应格式化信息,按播放时具体语言与样式需求生成视频字幕文件,作为外挂字幕在视频播放时进行载入。

(三)摇一摇功能扩展模块

此模块具体包括:摇一摇模块、定位模块与匹配模块,封装了cordova的加速度传感器监听功能与地理位置监听功能、摇一摇配对功能,同时提供在web层通过javascript调用该模块的接口。根据图5摇一摇功能扩展模块的架构图,具体模块设计如下:

摇一摇模块:集成cordova-plugin-device-motion插件,生成navigator.accelerometer全局对象。然后,通过navigator.accelerometer对象的getcurrentacceleration方法与watchacceleration方法获取并监听设备当前物理加速度数据,并在监听事件中根据任一方向的加速度数据浮动幅度判定是否构成“摇一摇”的情形,对象方法接收一个callback回调函数作为参数,用以执行监听到“摇一摇”事件时的后续逻辑。

定位模块:集成cordova-plugin-geolocation插件,生成navigator.geolocation全局对象,达成“摇一摇”事件后,通过navigator.geolocation对象的getcurrentposition方法获取用户当前地理位置,传入onsuccess回调函数,在该函数中,处理获取的地理位置信息并上传到云端。

匹配模块:在云端按照地区与学习情况对一定事件内参与“摇一摇”的用户进行分类,同类之间随机相互配对,并将配对结果返回。

以上所述仅为本发明的优先实施方式,同时也只是本发明的其中一个具体实例,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1