CN113568709A - 课件运行方法、配置方法、装置、电子设备及存储介质 - Google Patents
课件运行方法、配置方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113568709A CN113568709A CN202110883348.XA CN202110883348A CN113568709A CN 113568709 A CN113568709 A CN 113568709A CN 202110883348 A CN202110883348 A CN 202110883348A CN 113568709 A CN113568709 A CN 113568709A
- Authority
- CN
- China
- Prior art keywords
- courseware
- configuration file
- logic
- event
- language
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000012544 monitoring process Methods 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 25
- 230000001960 triggered effect Effects 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 24
- 238000009877 rendering Methods 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 12
- 238000007306 functionalization reaction Methods 0.000 claims description 6
- 238000011161 development Methods 0.000 abstract description 31
- 238000005516 engineering process Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000002452 interceptive effect Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/20—Education
- G06Q50/205—Education administration or guidance
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Tourism & Hospitality (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Marketing (AREA)
- Primary Health Care (AREA)
- General Business, Economics & Management (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种课件运行方法、配置方法、装置、电子设备及存储介质,课件运行方法包括:在接收到课件学习指令时,获取所述课件学习指令对应的课件配置文件;所述课件配置文件按照设定的DSL语义规范配置得到;按照所述DSL语义规范将所述课件配置文件解析为技术栈语言描述,并执行。这就使得业务侧只需要根据更为通用的DSL语言来配置课件配置文件即可,运行时只需要按照定义好DSL语义规范将课件配置文件解析为技术栈语言描述即可,从而对于开发侧而言,只需定义好DSL语言和所需采用的语言解析器即可,从而有效实现了业务侧和开发侧的解耦,降低了开发难度,提高了开发效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种课件运行方法、课件配置文件的配置方法、装置、电子设备及计算机可读存储介质。
背景技术
目前,在线上教育领域中,互动课的生产方式是,根据素材物料包、课件互动交互脚本逻辑、玩法逻辑,由软件开发人员使用诸如cocos2d等技术栈针对以上内容进行定制化开发。
在该方式中,所有的交互逻辑、玩法逻辑均由开发人员定制化的代码开发实现。而这种方式,在程序实现上,业务侧和开发侧需要高度耦合,这就要求开发人员必须充分理解业务侧人员的业务意图,开发难度较高。且该方式中,课件交互逻辑完全依赖所采用的技术栈,当想更换其它技术栈实现需要从零编码,对于业务侧的课件逻辑无法做到复用。
发明内容
本申请实施例的目的在于提供一种课件运行方法、课件配置文件的配置方法、装置、电子设备及计算机可读存储介质,用以实现业务侧和开发侧的解耦,降低开发难度,提高开发效率,并降低对技术栈的依赖。
本申请实施例提供了一种课件运行方法,包括:在接收到课件学习指令时,获取所述课件学习指令对应的课件配置文件;所述课件配置文件按照设定的DSL(domain-specific language,领域特定语言)语义规范配置得到;按照所述DSL语义规范将所述课件配置文件解析为技术栈语言描述,并执行。
在上述实现过程中,通过DSL语言来作为中间桥梁,让业务端通过DSL语言来配置课件配置文件,而在运行时,通过按照DSL语义规范将课件配置文件解析为技术栈语言描述并执行,这就使得业务侧只需要根据更为通用的DSL语言来配置课件配置文件即可,运行时只需要按照定义好DSL语义规范将课件配置文件解析为技术栈语言描述即可,从而对于开发侧而言,只需定义好DSL语言和所需采用的语言解析器即可,从而有效实现了业务侧和开发侧的解耦,降低了开发难度,提高了开发效率。同时由于实现了业务侧和开发侧的解耦,在需要更换新的技术栈来运行课件时,只需要按照DSL语义规范将课件配置文件解析为新的技术栈的技术栈语言描述即可,无需从零编码,对于业务侧的课件逻辑可以复用。
进一步地,所述课件配置文件的内容包括:组件对象,用于描述课件内容的最小颗粒度对象;变量,用于描述所述组件对象被执行时所产生的数据;事件监听,通过对变量的数据进行监听,以确定课件中的某一事件是否被触发;语法逻辑,用于描述不同事件下的组件对象执行逻辑;
对应的,执行所述技术栈语言描述的课件配置文件的过程包括:加载并渲染默认播放的组件对象;监听渲染过程中产生的变量数据;所述变量数据为所述课件配置文件中定义的变量所对应的数据;在监听到所述变量数据满足预设的事件触发条件时,解析所述事件触发条件所触发的事件的语法逻辑,执行所述语法逻辑中调用的组件对象。
在上述实现过程中,通过定义组件对象、变量和各事件的语法逻辑,并通过对组件对象执行过程中产生的变量进行监听,从而确定触发的事件,进而按照所触发的事件的语法逻辑,执行语法逻辑中调用的组件对象,使得整个课件的内容得以按照需求执行下去。且该过程中,通过以组件对象为基础,以事件为整个执行流程的基本触发单位,可以有效适配在线教育领域中,课件所具有的实际特性,在需要开发新的课件时,已有的各种组件对象都可灵活配置运用,无需额外重新进行开发。
进一步地,所述组件对象包括以下至少之一:视频、音频、图片、试题。
在上述实现过程中,通过将视频、音频、图片、试题中的至少之一作为组件对象,可以实现对于课件内容的最小粒度的描述,一方面便于业务侧进行课件配置文件的配置,另一方面也便于解释端(即运行课件的设备)进行解析和执行。
进一步地,所述课件配置文件的内容还包括:自定义函数;所述自定义函数为根据至少两个不同事件的语法逻辑中相同的逻辑部分,函数化后得到的函数;所述至少两个不同事件的语法逻辑中,具有所述自定义函数的调用关系。
在上述实现过程中,通过将至少两个不同事件的语法逻辑中相同的逻辑部分抽象出来,通过函数化处理为自定义函数。这样,被抽象出的这些事件的语法逻辑中,只需写入该自定义函数的调用关系即可,无需再针对每一个事件的语法逻辑均重复配置这部分所共用的逻辑,从而可以降低课件配置文件的大小,实现有效的资源复用。
本申请实施例还提供了一种课件配置文件的配置方法,包括:确定待配置课件所需的素材;确定所述待配置课件所存在的事件;根据所述素材,配置所述课件配置文件中各所述事件的组件对象以及语法逻辑;所述语法逻辑用于描述所述事件的各组件对象的执行逻辑;在所述课件配置文件中配置所述待配置课件中存在的变量;所述变量用于描述所述组件对象被执行时所产生的数据;在所述课件配置文件中配置事件监听,以在对所述课件配置文件执行时,对所述变量的数据进行监听,以确定课件中的某一事件是否被触发。
在上述实现过程中,通过配置组件对象、变量和各事件的语法逻辑,并通过对组件对象执行过程中产生的变量进行监听,从而确定触发的事件,从而可以按照所触发的事件的语法逻辑,执行语法逻辑中调用的组件对象,使得整个课件的内容得以按照需求执行下去。且该方案中,通过以组件对象为基础,以事件为整个执行流程的基本触发单位,可以有效适配在线教育领域中,课件所具有的实际特性,在需要开发新的课件时,已有的各种组件对象都可灵活配置运用,无需额外重新进行开发。
本申请实施例还提供了一种课件运行装置,包括:获取模块,用于在接收到课件学习指令时,获取所述课件学习指令对应的课件配置文件;所述课件配置文件按照设定的领域特定语言DSL语义规范配置得到;运行模块,用于按照所述DSL语义规范将所述课件配置文件解析为技术栈语言描述,并执行。
进一步地,所述课件配置文件的内容包括:组件对象,用于描述课件内容的最小颗粒度对象;变量,用于描述所述组件对象被执行时所产生的数据;事件监听,通过对变量的数据进行监听,以确定课件中的某一事件是否被触发;语法逻辑,用于描述不同事件下的组件对象执行逻辑;所述运行模块具体用于按照以下方式执行所述技术栈语言描述的课件配置文件:加载并渲染默认播放的组件对象;监听渲染过程中产生的变量数据;所述变量数据为所述课件配置文件中定义的变量所对应的数据;在监听到所述变量数据满足预设的事件触发条件时,解析所述事件触发条件所触发的事件的语法逻辑,执行所述语法逻辑中调用的组件对象。
进一步地,所述组件对象包括以下至少之一:视频、音频、图片、试题。
本申请实施例还提供了一种电子设备,包括处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的课件运行方法。
本申请实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的课件运行方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种课件配置文件的配置方法的流程示意图;
图2为本申请实施例提供的一种DSL语言结构示意图;
图3为本申请实施例提供的一种更具体的DSL语言结构示意图;
图4为本申请实施例提供的一种课件运行方法的流程示意图;
图5为本申请实施例提供的一种整体开发架构示意图;
图6为本申请实施例提供的一种课件运行装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
实施例一:
为了实现业务侧和开发侧的解耦,降低开发难度,提高开发效率,并降低对技术栈的依赖,本申请实施例中提供了一种课件配置文件的配置方法和课件运行方法。
可以参见图1所示,图1为本申请实施例中提供的一种课件配置文件的配置方法的流程示意图,包括:
S101:确定待配置课件所需的素材。
需要说明的是,本申请实施例中所述的素材是指用于配置课件的基本资料,其可以是视频、音频、图片、试题等等资源中的一种或多种。
需要说明的是,本申请实施例中所述的视频包括但不限于,每帧图像是通过实时摄取自然景象或者活动对象获得的连续图像信号,或者每帧图像都是由人工或计算机产生的连续图像信号(比如动画),或者混杂有通过实时摄取自然景象或者活动对象的图像信号和由人工或计算机产生的图像信号的连续图像信号。
在本申请实施例中,动画可以包括教学动画、过场动画等内容。
在本申请实施例中,音频可以包括对白、教学语音等内容。
在本申请实施例中,图片可以包括由人工或计算机制作的动画图片,也可以包括实时摄取自然景象或者活动对象获得的照片。
在本申请实施例中,待配置课件所需的素材可以由业务侧的人员预先确定好。
在本申请实施例中,业务侧的人员包括但不限于教师、课件设计员、素材管理者等人员。
S102:确定待配置课件所存在的事件。
在本申请实施例中,在课件运行过程中,往往可能需要完成多个不同的目标,每个目标的完成需要不同的素材按照不同的逻辑进行执行。在本申请实施例中,可以基于所要完成的目标确定相应的事件。
比如,在进行互动课时,可能在看完某一个视频后,就需要进一步提供一些试题给用户进行测试。那么看完该视频即是一个目标,可以定义为一个事件,而提供试题给用户又是另一个目标,可以定义为一个事件。
应理解,事件的具体划分粒度可以由课程配置人员按课程对组件进行组合或独立的划分,比如上例中,也可以将观看该视频和提供试题给用户作为一个学习事件。又比如,可以针对每一个所需进行行为定义为一个事件,比如可以定义播放、停止、点击等的行为会产生一个事件。具体的事件划分方式在本申请实施例中不做限制。
需要说明的是,步骤S102可以是业务侧人员自身确定的,其可以通过某种具体的形式体现出来,比如可以记录在纸上或者计算机上,但是也可以不通过某种具体的形式体现出来,仅在脑海中进行该确定行为。应理解,无论是否以某种具体的形式体现出来,只要后续其以事件为单位进行了组件对象以及语法逻辑的配置,那么毫无疑问,业务侧人员实际比如执行了该步骤。
需要说明的是,在本申请实施例中,在配置课件配置文件时,需要以DSL语言的方式进行配置。需要理解的是,DSL语言是一种更多是从客户的角度出发看待代码,定义函数的语言,其本身可以通过C、C++、JAVA等语言通过定义新的语言结构来实现。
在本申请实施例中,为了以DSL语言的方式配置课件配置文件,那么需要先定义适用于本申请的DSL语言结构。
请参见图2所示,图2为本申请实施例所提供的DSL的语言结构,包括:
组件对象,用于描述课件内容的最小颗粒度对象;例如可以是video视频、音频、spine动画等。
变量,用于描述组件对象被执行时所产生的数据。应理解,组件对象运行时会生成变量。例如,视频被点击时,会产生变量诸如点击位置等数据。
事件监听,通过对变量的数据进行监听,以确定课件中的某一事件是否被触发。应理解,在本申请实施例中,课件内各事件间的依赖通过监听变量数据来驱动。
语法逻辑,用于描述不同事件下的组件对象执行逻辑。在本申请实施例中,语法逻辑可以包含顺序执行语法、并行执行语法、judge判定语法、if else语法、case when语法、条件表达式语法、系统命令等等中的一种或多种语法,从而通过这些语法实现对于事件的各组件对象的执行逻辑的描述。
基于以上DSL的语言结构(后文也称为DSL语义规范),即可进行后续的具体配置过程。
应理解,DSL的语言结构可以是在步骤S101和步骤S102之前就定义好的。
S103:根据素材,配置课件配置文件中各事件的组件对象以及语法逻辑。
需要说明的是,在本申请实施例中,组件对象可以是素材中的一种或多种,即可以是视频、音频、图片、试题等作为素材的资源中的一种或多种。
在步骤S103中,通过对于各事件的组件对象以及语法逻辑的配置,即可以有效在课件配置文件中定义好课件中各事件被执行时所需执行的组件对象有哪些,以及各组件对象的执行逻辑是怎样的。
比如,对于一个视频观看事件,假设其包含3个组件对象,分别为视频1、视频2和视频3,通过语法逻辑可以定义先播放视频1,播放完毕后播放视频2,播放完毕后播放视频3。这样在后续解析并执行课件配置文件时,对于该视频观看事件,即会先播放视频1,播放完毕后播放视频2,播放完毕后播放视频3。
需要注意的是,在实际应用过程中,可能存在有不同事件的语法逻辑中存在相同的逻辑部分。在本申请实施例中,参见图3所示,在定义DSL的语言结构时,还可以定义自定义函数,从而将至少两个不同事件的语法逻辑中相同的逻辑部分抽象出来,该部分即可以作为这些不同事件的语法逻辑中共用逻辑部分。然后,通过函数化操作,将该共用逻辑部分转换为函数(即本申请所述的自定义函数),进而在相应的语法逻辑中,只需写入该自定义函数的调用关系(比如通过调用函数写入所需调用的自定义函数的函数名)即可。
需要说明的是,所述函数化操作是指,根据该共用逻辑部分的逻辑,通过函数形式表达。在本申请实施例中,自定义函数可以由开发人员进行抽象后进行函数化操作得到。
S104:在课件配置文件中配置待配置课件中存在的变量。
应理解,组件对象运行时会生成某些变动的数据。在本申请实施例中,可以预先定义这些变量,从而配合组件对象执行。
S105:在课件配置文件中配置事件监听,以在对课件配置文件执行时,对变量的数据进行监听,以确定课件中的某一事件是否被触发。
在本申请实施例中,可以配置所需监听的变量的类型,以及各变量的相应的触发条件,从而实现事件的监听配置,从而得以根据监听的变量的数据,确定是否触发新的事件。
需要注意的是,在本申请实施例中,在配置变量时,可以预先定义变量规范,从而可以依据定义变量规范配置变量。比如,对于一个位置变量,可以预先定义该变量的位置变化范围,然后在该位置变化范围内配置变量的触发条件。应理解,所谓变量规范是指用于限制变量使用情况的规则,如前例中即是限定的变量的数值范围。
需要注意的是,在本申请实施例中,通过上述配置方法来配置课件配置文件,配置者只需关注课件各事件之间的依赖关系,各事件所需的组件对象以及各组件对象的执行顺序即可,对于业务侧人员而言更为友好。
在本申请实施例中,参见图4所示,图4示出了本申请实施例所提供的课件运行方法,包括:
S401:在接收到课件学习指令时,获取课件学习指令对应的课件配置文件。
需要注意的是,在本申请实施例中,课件配置文件应当按照设定的领域特定语言DSL语义规范配置得到。其具体配置方法可以采用前文所述的课件配置文件的配置方法来实现。
还需要注意的是,在本申请实施例中,上述课件运行方法可以运行在用户所持有的设备上,此时课件学习指令即可以是用户通过在相应的APP(Application,应用程序)界面上下发,从而被设备接收。
此外,在本申请实施例中,上述课件运行方法可以运行在服务器上,此时用户通过自身持有的设备向服务器发送针对某一课件的课件学习指令,从而服务器执行本申请的课件运行方法,并在解析过程中实时将最新的播放内容返回给用户自身持有的设备。
S402:按照DSL语义规范将课件配置文件解析为技术栈语言描述,并执行。
在本申请实施例中,可以根据运行本课件运行方法的设备所采用的技术栈,采用相应的语法解析器对课件配置文件进行解析,从而将DSL语言翻译为设备自身的技术栈所能识别的技术栈语言,然后执行。
在本申请实施例中,执行技术栈语言描述的课件配置文件时,可以加载并渲染默认播放的组件对象,然后监听渲染过程中产生的变量数据,在监听到变量数据满足预设的事件触发条件时,解析事件触发条件所触发的事件的语法逻辑,执行语法逻辑中调用的组件对象。
应理解,在执行语法逻辑中调用的组件对象时,该组件对象也会产生变量数据,继续监听这些变量数据,从而重复前述过程,直至遇到场景结束命令后结束整个课件配置文件的解析与执行流程。
应理解,在本申请实施例中,执行语法逻辑中调用的组件对象是指,加载并渲染该组件对象,从而实现课件的不断运行,达到播放课件的效果。
需要说明的是,本申请实施例中所述的默认播放的组件对象可以包括背景图片、背景内容、NPC(Non Player Character,非玩家角色)初始状态位置、对白、视频等内容,但不作为限制。具体的默认播放的组件对象可以由工程师预先设定。示例性的,可以在课件配置文件中定义好默认播放的组件对象以及这些组件对象的语法逻辑,作为默认直接触发的初始事件的组件对象和语法逻辑。
本申请实施例所提供的课件配置文件的配置方法和课件运行方法,通过配置组件对象、变量和各事件的语法逻辑,并通过对组件对象执行过程中产生的变量进行监听,从而确定触发的事件,从而可以按照所触发的事件的语法逻辑,执行语法逻辑中调用的组件对象,使得整个课件的内容得以按照需求执行下去。且该方案中,通过以组件对象为基础,以事件为整个执行流程的基本触发单位,可以有效适配在线教育领域中,课件所具有的实际特性,在需要开发新的课件时,已有的各种组件对象都可灵活配置运用,无需额外重新进行开发。
此外,本申请中通过DSL语言来作为中间桥梁,让业务端通过DSL语言来配置课件配置文件,而在运行时,通过按照DSL语义规范将课件配置文件解析为技术栈语言描述并执行,这就使得业务侧只需要根据更为通用的DSL语言来配置课件配置文件即可,运行时只需要按照定义好DSL语义规范将课件配置文件解析为技术栈语言描述即可,从而对于开发侧而言,只需定义好DSL语言和所需采用的语言解析器即可,从而有效实现了业务侧和开发侧的解耦,降低了开发难度,提高了开发效率。同时由于实现了业务侧和开发侧的解耦,在需要更换新的技术栈来运行课件时,只需要按照DSL语义规范将课件配置文件解析为新的技术栈的技术栈语言描述即可,无需从零编码,对于业务侧的课件逻辑可以复用。
实施例二:
本实施例在实施例一的基础上,以图3所示的DSL的语言结构为例,对本申请实施例的方案做进一步示例说明。
在本申请实施例中,首先以面向对象的思维,抽象出组件对象、组件对象的变量、事件监听、逻辑语法等定义,参见图3所示。
参见图5所示,课程生产端(静态)与课程解释端(运行时动态)均以DSL为核心,两端通过DSL进行交互转化,将原始编译时转化为运行时。
课程生产端负责课件配置的生产,主要面向业务侧人员,通过业务侧人员按照图3所示的定义进行配置,产出符合DSL语义规范的课件配置文件(其格式可以为json格式、xml格式等,在本申请实施例中不做限制)。
课程解释端负责课件的呈现,主要面向学生。课程解释端按照DSL语义规范,将课件配置文件解析为课程解释端上的技术栈所能识别的技术栈语言执行,具体过程如下:
在学生上课的期间,课程解释端首先获取课件配置文件,然后按照DSL语义规范,解析课件配置文件,使得课件配置文件通过可以被课程解释端的技术栈识别的技术栈语言描述。
此后,首先加载渲染默认播放的组件(如背景图片、背景内容、NPC初始状态位置、对白、视频等)渲染加载的过程中会产生运行时的变量数据(如对白播放完成、视频播放完成、NPC移动完成等)并存储在课程解释端的内存中。
在产生变量数据的同时,会触发监听此变量的监听。此时如果发现监听到变量数据满足预设的事件触发条件,则此事件触发条件对应的事件被触发。
解析该事件中的语法逻辑,执行语法逻辑中调用的组件对象(如执行视频播放、音频播放等),学生观看完视频或音频,或者作答完试题后,会继续产生变量数据,变量数据存储在课程解释端的内存中,重复执行前述监听触发过程,直到遇到场景结束命令后退出。
通过上述方案,底层技术实现了与业务模型解耦,无论底层技术采用的是何种技术栈(比如可以是ios、android、h5、cocos2d等),只需按照DSL语义规范将课件配置文件翻译为相应的技术栈语言描述即可,从而对于已产生的课件配置文件可以实现多端复用,不关注底层实现的技术与设备。
同时,通过本申请的方案,在进行课件开发时,不再是完全由开发人员通过基于技术栈的定制化的代码开发实现,重新定义了课件的开发架构。
同时,在需要开发新的课件时,已有的各种组件对象都可灵活配置运用,无需额外重新进行开发。
实施例三:
基于同一发明构思,本申请实施例中还提供了一种课件运行装置600。请参阅图6所示,图6示出了采用图4所示的方法的课件运行装置。应理解,装置600具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置600包括至少一个能以软件或固件的形式存储于存储器中或固化在装置600的操作系统中的软件功能模块。具体地:
参见图6所示,装置600包括:获取模块601和运行模块602。其中:
获取模块601,用于在接收到课件学习指令时,获取所述课件学习指令对应的课件配置文件;所述课件配置文件按照设定的领域特定语言DSL语义规范配置得到;
运行模块602,用于按照所述DSL语义规范将所述课件配置文件解析为技术栈语言描述,并执行。
在本申请实施例的一种可行实施方式中,所述课件配置文件的内容包括:
组件对象,用于描述课件内容的最小颗粒度对象;
变量,用于描述所述组件对象被执行时所产生的数据;
事件监听,通过对变量的数据进行监听,以确定课件中的某一事件是否被触发;
语法逻辑,用于描述不同事件下的组件对象执行逻辑;
所述运行模块602具体用于按照以下方式执行所述技术栈语言描述的课件配置文件:
加载并渲染默认播放的组件对象;
监听渲染过程中产生的变量数据;所述变量数据为所述课件配置文件中定义的变量所对应的数据;
在监听到所述变量数据满足预设的事件触发条件时,解析所述事件触发条件所触发的事件的语法逻辑,执行所述语法逻辑中调用的组件对象。
在本申请实施例中,所述组件对象包括以下至少之一:视频、音频、图片、试题。
在本申请实施例中,所述课件配置文件的内容还包括:自定义函数;所述自定义函数为根据至少两个不同事件的语法逻辑中相同的逻辑部分,函数化后得到的函数;所述至少两个不同事件的语法逻辑中,具有所述自定义函数的调用关系。
需要理解的是,出于描述简洁的考量,部分实施例一中描述过的内容在本实施例中不再赘述。
实施例四:
本实施例提供了一种电子设备,参见图7所示,其包括处理器701、存储器702以及通信总线703。其中:
通信总线703用于实现处理器701和存储器702之间的连接通信。
处理器701用于执行存储器702中存储的一个或多个程序,以实现上述实施例一和/或实施例二中的课件运行方法。
可以理解,图7所示的结构仅为示意,电子设备还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。
在本申请实施例中,电子设备可以是用户所持有的用户端设备,如手机、电脑等设备,此外,也可以是服务端设备,如服务器等设备,在本申请实施例中不做限制。
本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一和/或实施例二中的课件运行方法。在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
在本文中,多个是指两个或两个以上。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种课件运行方法,其特征在于,包括:
在接收到课件学习指令时,获取所述课件学习指令对应的课件配置文件;所述课件配置文件按照设定的领域特定语言DSL语义规范配置得到;
按照所述DSL语义规范将所述课件配置文件解析为技术栈语言描述,并执行。
2.如权利要求1所述的课件运行方法,其特征在于,所述课件配置文件包括:
组件对象,用于描述课件内容的最小颗粒度对象;
变量,用于描述所述组件对象被执行时所产生的数据;
事件监听,通过对变量的数据进行监听,以确定课件中的某一事件是否被触发;
语法逻辑,用于描述不同事件下的组件对象执行逻辑;
对应的,执行所述技术栈语言描述的课件配置文件的过程包括:
加载并渲染默认播放的组件对象;
监听渲染过程中产生的变量数据;所述变量数据为所述课件配置文件中定义的变量所对应的数据;
在监听到所述变量数据满足预设的事件触发条件时,解析所述事件触发条件所触发的事件的语法逻辑,执行所述语法逻辑中调用的组件对象。
3.如权利要求2所述的课件运行方法,其特征在于,所述组件对象包括以下至少之一:
视频、音频、图片、试题。
4.如权利要求2所述的课件运行方法,其特征在于,所述课件配置文件的内容还包括:自定义函数;所述自定义函数为根据至少两个不同事件的语法逻辑中相同的逻辑部分,函数化后得到的函数;
所述至少两个不同事件的语法逻辑中,具有所述自定义函数的调用关系。
5.一种课件配置文件的配置方法,其特征在于,包括:
确定待配置课件所需的素材;
确定所述待配置课件所存在的事件;
根据所述素材,配置所述课件配置文件中各所述事件的组件对象以及语法逻辑;所述语法逻辑用于描述所述事件的各组件对象的执行逻辑;
在所述课件配置文件中配置所述待配置课件中存在的变量;所述变量用于描述所述组件对象被执行时所产生的数据;
在所述课件配置文件中配置事件监听,以在对所述课件配置文件执行时,对所述变量的数据进行监听,以确定课件中的某一事件是否被触发。
6.一种课件运行装置,其特征在于,包括:
获取模块,用于在接收到课件学习指令时,获取所述课件学习指令对应的课件配置文件;所述课件配置文件按照设定的领域特定语言DSL语义规范配置得到;
运行模块,用于按照所述DSL语义规范将所述课件配置文件解析为技术栈语言描述,并执行。
7.如权利要求6所述的课件运行装置,其特征在于,所述课件配置文件的内容包括:
组件对象,用于描述课件内容的最小颗粒度对象;
变量,用于描述所述组件对象被执行时所产生的数据;
事件监听,通过对变量的数据进行监听,以确定课件中的某一事件是否被触发;
语法逻辑,用于描述不同事件下的组件对象执行逻辑;
所述运行模块具体用于按照以下方式执行所述技术栈语言描述的课件配置文件:
加载并渲染默认播放的组件对象;
监听渲染过程中产生的变量数据;所述变量数据为所述课件配置文件中定义的变量所对应的数据;
在监听到所述变量数据满足预设的事件触发条件时,解析所述事件触发条件所触发的事件的语法逻辑,执行所述语法逻辑中调用的组件对象。
8.如权利要求7所述的课件运行装置,其特征在于,所述组件对象包括以下至少之一:
视频、音频、图片、试题。
9.一种电子设备,其特征在于,包括:处理器、存储器及通信总线;
所述通信总线用于实现所述处理器以及所述存储器之间的连接通信;
所述处理器用于执行所述存储器中存储的一个或者多个程序,以实现如权利要求1至4中任一项所述的课件运行方法。
10.一种计算机计算机可读存储介质,其特征在于,所述计算机计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至4任一项所述的课件运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110883348.XA CN113568709A (zh) | 2021-08-02 | 2021-08-02 | 课件运行方法、配置方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110883348.XA CN113568709A (zh) | 2021-08-02 | 2021-08-02 | 课件运行方法、配置方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113568709A true CN113568709A (zh) | 2021-10-29 |
Family
ID=78170048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110883348.XA Pending CN113568709A (zh) | 2021-08-02 | 2021-08-02 | 课件运行方法、配置方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113568709A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090015A (zh) * | 2021-11-26 | 2022-02-25 | 浩云科技股份有限公司 | 一种页面dsl解析方法、系统、设备及存储介质 |
-
2021
- 2021-08-02 CN CN202110883348.XA patent/CN113568709A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090015A (zh) * | 2021-11-26 | 2022-02-25 | 浩云科技股份有限公司 | 一种页面dsl解析方法、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10204034B2 (en) | System and method for testing software applications in a software defined network | |
Souchon et al. | A review of XML-compliant user interface description languages | |
US8433733B2 (en) | Web application record-replay system and method | |
CA2773981C (en) | System and method of substituting parameter sets in self-contained mini-applications | |
CN110013672B (zh) | 用于机器运行的游戏的自动化测试的方法、设备、装置以及计算机可读存储介质 | |
CN109966742B (zh) | 游戏运行中获取渲染性能数据的方法及装置 | |
CN112187585A (zh) | 网络协议测试方法及装置 | |
CN115525292A (zh) | 低代码开发方法及装置、可读存储介质、电子设备 | |
US20140176728A1 (en) | Receiver and a transmitter | |
CN109542444B (zh) | Java应用的监控方法、装置、服务器和存储介质 | |
CN108875011A (zh) | 第三方应用的页面状态信息获取方法、装置、设备及介质 | |
CN113568709A (zh) | 课件运行方法、配置方法、装置、电子设备及存储介质 | |
US11650834B1 (en) | Leveraging digital footprints in software development life cycle | |
CN111767209A (zh) | 代码测试方法、装置、存储介质以及终端 | |
CN112667219A (zh) | 代码生成方法及装置、设备、计算机可读存储介质 | |
CN114860205A (zh) | 低代码开发平台的应用扩展系统、方法和装置 | |
CN113117340A (zh) | 游戏运行方法、装置、存储介质及电子设备 | |
CN111880775A (zh) | 多模块分层架构实现方法、装置、电子设备、存储介质 | |
KR100916301B1 (ko) | 커널 api 대화식 실행 장치 및 방법 | |
Cavarra et al. | A framework to simulate UML models: moving from a semi-formal to a formal environment | |
Zelenchuk | Android Espresso Revealed: Writing Automated UI Tests | |
CN113253993B (zh) | 一种实现命令序列和事件管理的CFlex脚本语言的使用方法 | |
WO2023165190A1 (zh) | 数据处理方法、装置、程序产品、计算机设备和介质 | |
CN113094044B (zh) | 一种编写ppt ui插件代码的方法及终端 | |
CN113760738A (zh) | 骨架屏生成方法、装置、电子设备和计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |