最近一直在看scorm资料,初步要求开发一个能够解析scorm1.2课件的LMS系统。
经过近一个星期的努力,初步明了了如何实现“LMS”系统,现与大家一同分享,希望能给予帮助。
一.首先弄清楚几个概念:
asset(微单元/原始素材):学习资源的最基本形式是微单元。微单元是上传到网上并呈现给学习者的电子形式的媒体,如文本、图像、声音、评价对象或任何其他一块数据。几个微单元可以集合在一起建立新的微单元。
SCO(可共享内容对象):是一个或者多个微单元的集合,它可以在SCORM运行环境中与学习管理系统(LMS)进行数据传递。可重用内容对象是LMS通过SCORM运行时间环境可以跟踪的最低粒度水平的学习资源。
LMS(学习管理系统):能够解析scorm课件,跟踪学习体验者的学习记录的web系统。
二.scorm课件交互过程
1.下载SCORM运行时间环境(RTE)http://www.adlnet.gov/Technologies/scorm/SCORMSDocuments/Forms/AllItems.aspx?RootFolder=%2fTechnologies%2fscorm%2fSCORMSDocuments%2fPrevious%20Versions%2fSCORM%201%2e2%2fSRTE%20%28SCORM%201%2e2%29&FolderCTID=0x0120007F801FCD5325044C89D91240519482D7&View=%7b4D6DFFDE%2d3CFC%2d4DD9%2dA21A%2d4B687728824A%7d
解压安装到本地,如:D:\Sample_RTE_1_2_2 。
2.按照网上SCORM RTE安装说明,启动D:\Sample_RTE_1_2_2目录中的Tomact,结果启动失败。
3.无奈打开myeclipse工具,新建一个web工程,拷贝源码目录(D:\Sample_RTE_1_2_2\source)及web目录(D:\Sample_RTE_1_2_2\jakarta-tomcat\webapps\adl)中的资源文件。以为万事大吉,赶紧发布部署,不料登录系统,应用导入scorm1.2课件时后台解析xml异常。
4.几番折腾发现缺了好几个jar包,既然缺那就就加上去呗,果然导入课件成功了。下来就是注册课件了,按页面提示操作,系统提示成功,
可后台一堆错。
5.还好哥用的是myeclipse,那咱就调试下,发现F:\SampleRTEFiles\tempUploads\C3D226C574868E6AC60457C8FE773508\imsmanifest.xml 文件不存在,只一个zip的文件,打开一看zip文件中包含上述文件,抱着一试的心理将压缩文件解压到当前目录,嘿,成功了!
6.本以为这下大功告成了,可点击显示课程连接时,点击进入课件,页面正常跳转,没过一会猛抛“Unable to find an API adapter”异常
7.查看异常出处:异常来自:APIWrapper.js/getAPI函数。在网上搜了些资料如下图:
认为API实例是LMS系统中的一个java类对象实例,可怎么想也不知道js怎么可以调用java对象实例呢。直到发现RTE代码中的APIAdapterApplet类,才恍然明白,是通过applet形式交互的。其实上图“API实例”是指LMS系统页面中的js自定义对象。
8.新建一个jsp页面,内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<script type="text/javascript">
window.API = new Object();
API.name = "hero";
API.LMSInitialize=function(param){
return window.document.APIAdapterApplet.LMSInitialize(param);
};
API.LMSFinish=function(param){
return window.document.APIAdapterApplet.LMSInitialize(param);
};
API.LMSGetValue=function(element){
return window.document.APIAdapterApplet.LMSGetValue(element);
};
API.LMSSetValue=function(element,value){
return window.document.APIAdapterApplet.LMSSetValue(element,value);
};
API.LMSCommit=function(param){
return window.document.APIAdapterApplet.LMSCommit(param);
};
API.LMSGetLastError=function(){
return window.document.APIAdapterApplet.LMSGetLastError();
};
API.LMSGetErrorString=function(errorCode){
return window.document.APIAdapterApplet.LMSGetErrorString(errorCode);
};
API.LMSGetDiagnostic=function(errorCode){
return window.document.APIAdapterApplet.LMSGetDiagnostic(errorCode);
};
</script>
</head>
<body>
<applet code="org/adl/samplerte/client/APIAdapterApplet.class" codebase="plugin/" name="APIAdapterApplet" width="550" height="100"></applet>
<iframe src="viewCourses.jsp" width="900" height="600"></iframe>
</body>
</html>
浏览器中访问该页面,点击进入课件学习,控制台有日志信息输出
分享到:
相关推荐
博文http://hi.baidu.com/fevelen/item/ef72142fae03d40e42634ab6 “原创:LMS scorm1.2 JAVA开发经历”提到的demo、RTE和相关资料文档
使用Java进行SCORM开发意味着你可以创建独立的、符合SCORM规范的学习内容包,这些内容包可以在任何支持SCORM 1.2的LMS上运行。Java的跨平台特性和丰富的库资源使得它成为开发SCORM内容的理想选择。 3. **Demo**: ...
### SCORM 1.2 开发介绍 #### 一、SCORM 概念与特点 **SCORM**,即 **Shared Content Object Reference Model**(共享内容对象参考模型),是在线教育领域内的一项重要标准,旨在确保任何遵循该标准的课程内容能够...
SCORM 自其发布以来,已经经历了多个版本的更新和完善。SCORM 1.2 是该标准的第一个主要版本,之后的版本包括 SCORM 1.3、SCORM 2004 和 SCORM 2009 等。每个版本都带来了新的功能和改进,旨在满足学习内容的不断...
这个"SCORM1.2_Sample_RTE"是一个基于SCORM 1.2规范的开源学习管理系统(LMS)演示示例,名为"SampleRte"。它允许开发者测试他们的SCORM兼容课程,确保它们能正确地与LMS进行通信。 SCORM 1.2是ADL(Advanced ...
总的来说,SCORM 1.2是一个用于构建和部署在线学习内容的框架,通过这些文档,开发者可以学习到如何创建符合标准的内容包,以及如何确保它们在各种LMS平台上的一致性。了解并掌握SCORM 1.2的知识,无论是对教育内容...
6. **资源共享**:SCORM 1.2允许学习对象的独立开发和重用,这意味着一个LO可以在多个课程中使用,提高了教学资源的利用率。 7. **版本管理**:虽然现在有更新的SCORM版本,如SCORM 2004,但1.2版本因其简单性和...
- 兼容性:了解不同LMS对SCORM 1.2的支持程度,以及如何确保你的内容能在多个平台上顺利运行。 - 应用场景:理解如何将SCORM应用于在线培训、企业内部培训、远程教育等不同场景。 - 开发工具:熟悉使用像ADL SCORM...
3. **SCORM_1.2_RunTimeEnv.pdf**:运行时环境文档详细阐述了SCORM内容在LMS中如何运行。它规定了学习内容与LMS之间的通信协议,包括启动、暂停、恢复、完成、评分和跟踪学习者行为等功能的实现。 4. **SCORM_1.2_...
总之,SCORM 1.2 CAM作为SCORM标准的核心组成部分,为电子学习内容的开发和部署提供了一个强大而灵活的框架。通过其内容包装、组织结构、元数据和技术规范等特性,SCORM 1.2 CAM极大地提升了电子学习资源的互操作性...
1. SCORM版本:SCORM有多个版本,如SCORM 1.2、SCORM 2004等,它们在数据模型和行为上有差异,开发时需要选择适用的版本。 2. 数据交换:理解SCORM的数据模型,如cmi核心数据模型,如cmi.core.score、cmi.core....
### 利用ReloadEditor制作SCORM1.2教程 #### SCORM1.2教材制作概述 SCORM(Sharable Content Object Reference Model),即共享内容对象参考模型,是一种广泛应用于在线教育领域的标准,它使得课程内容能够在不同...
SCORM 1.2 中文帮助文档(谷歌翻译) SCORM(Sharable Content Object Reference Model)是一种...SCORM 1.2 中文帮助文档(谷歌翻译)提供了详细的技术规范和实现指南,旨在实现学习资源的可重用和互操作性跨多 LMS。
edx_xblock_scorm XBlock在Open edX LMS中显示SCORM内容。 在Open edx Studio中可编辑。 将保存学生状态并将分数报告到课程的进度选项卡。 当前支持SCORM 1.2和SCORM 2004标准。 块显示SCORM,另存为File -> Export ...
SCORM 1.2 CAM(Content Aggregation Model)文档详细定义了如何组织和结构化学习内容,以便它们可以被LMS识别和管理。它规定了内容包的基本结构,包括根文件夹、元数据文件、内容模块以及相关的资源文件。CAM帮助...
通过研究这些示例,开发者可以了解如何构建符合SCORM标准的课程,包括数据交换(如学生进度、成绩等)、内容打包、LMS通信以及如何利用Java等编程语言进行更高级的功能实现。 此外,对于教育者来说,这些示例可以...
可共享内容对象(SCO)是一个或者多个微单元的集合,它可以在 SCORM 运行环境中与学习管理系统(LMS)进行数据传递。可重用内容对象是 LMS 通过 SCORM 运行时间环境可以跟踪的最低粒度水平的学习资源。SCO 应该独立...
5. **导出为SCORM兼容包**:完成课件制作后,可以导出为符合SCORM标准的包,方便上传到任何支持SCORM的LMS系统。 通过这种方式,教育工作者能够轻松地将他们的教学内容转化为数字化形式,方便在线发布和跟踪学生的...
开发SCORM播放器时,首先需要初始化API,然后在学习过程中根据需要调用`LMSSetValue`设置数据,如用户得分或进度。当学习结束时,调用`LMSCommit`保存数据,并最终通过`LMSFinish`关闭会话。同时,通过`LMSGetValue`...