概述
SCORM标准的课程是e-learning比较常用的标准,但课程要放到LMS浏览才看到课件数据的交互很不方便,下面介绍.net写的SCORM课件播放器,方便离线浏览SCORM课程或用于SCORM的课件测试。
主要实现
建立winform项目,向窗体添加web browser控件,添加窗体的Load,FormClosing事件
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace ScormPlayer
{
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
webBrowser1.ObjectForScripting = this; //让html访问窗体的成员
}
private void Form1_Load(object sender, EventArgs e)
{
string startupPath = System.Configuration.ConfigurationManager.AppSettings["StartupPath"];
//课程的入口文件,写在配置文件里,方便修改
string url = Path.Combine(Application.StartupPath, startupPath);
//SCORM外壳页面,主要初始化SCORM API对象,把课程的地址当做参数传入
string preview = Path.Combine(Application.StartupPath, "Preview.html?url=" + url);
webBrowser1.Navigate(preview);
}
//关闭控制
private bool _CanClose = false;
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (!_CanClose)
{
//触发页面的onunload方法,让课件提交数据
webBrowser1.Document.InvokeScript("eval", new object[] { "window.top.close()" });
_CanClose = true;
}
e.Cancel = !_CanClose;
}
}
}
向窗体添加SCORM标准的API实现
//SCORM API 对象
public object API
{
get
{
return this;
}
}
public string LMSInitialize(string value)
{
return "true";//没特殊处理返回"true"即可
}
public string LMSFinish(string value)
{
//课件页面unload时关闭窗体
_CanClose = true;
Close();
return "true";//没特殊处理返回"true"即可
}
public string LMSGetValue(string model)
{
Util.Debug("LMSGetValue(" + model + ")");
//TODO:读数据,添加自定义处理,可读写数据库或读写文件
// string value;
// ...
// return value
return "0";//返回指定的数据,这里hard code返回"0"。
}
public string LMSSetValue(string model, string value)
{
Util.Debug("LMSSetValue(" + model + ", " + value + ")");
//TODO:写数据,添加自定义处理,可读写数据库或读写文件
return "true";//没特殊处理返回"true"即可
}
public string LMSCommit(string value)
{
return "true";//没特殊处理返回"true"即可
}
public string LMSGetErrorString(string value)
{
return string.Empty;//没特殊处理返回""即可
}
public string LMSGetLastError()
{
return "0";//没特殊处理返回"0"即可
}
public string LMSGetDiagnostic(string value)
{
return string.Empty;//没特殊处理返回""即可
}
添加SCORM外壳页面preview.html
<!--sp--><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>课程学习</title>
<script language="javascript" type="text/javascript">
window.API = window.external.API; //创建SCORM API对象,window.external.API是Form1.API属性
//获取地址参数
function getParam(paramName) {
var url = unescape(window.location.href);
var allargs = url.split("?")[1];
var args = allargs.split("&");
for (var i = 0; i < args.length; i++) {
var arg = args[i].split("=");
if (arg[0] == paramName) {
return arg[1];
}
}
return "";
}
function loadUrl() {
var url = getParam("url");//课程的地址
if (url != "") {
document.getElementById("content").src = url;
}
}
</script>
<style>
html{height: 100%;}
body{height: 100%;margin: 0px;overflow: hidden;}
</style>
</head>
<body onload="loadUrl()">
<iframe id="content" name="content" width="100%" height="100%" frameborder="0" scrolling="no" src="">iframe>
<noframes>
</noframes>
</body>
</html>
配置文件配置课程的入口文件
<!--sp-->xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="StartupPath" value="Course3/index.html"/>
<!--<add key="StartupPath" value="Course1/Player.html"/>
<add key="StartupPath" value="Course2/lo/template.html"/>
<add key="StartupPath" value="Course3/index.html"/>
-->
</appSettings>
</configuration>
进阶
上面基本实现了SCORM标准,进一步完善,可以进行课程数据的存储,上载课程数据到平台,添加课程管理等功能,才算真正实现企业级的SCORM离线播放器。
分享到:
相关推荐
SCORM离线播放器基于Firefox附加组件的SCORM-Offline-Player。操作系统支持Windows 32/64位Android 4.x Linux 32 / 64Bit(尚未测试) MAC OSX(尚未测试)发展要求Python 2.5或2.6。 请注意,不支持Python的3.0和...
一个很好的制作scorm课件工具,采用火狐内核编写
PPT课件 SCORM 调用的js文件
这是用Flash开发制作scrom课件播放器完全代码,关键技术代码。
超强课件播放器非常好的超强课件播放器非常好的超强课件播放器
这是本人结合很多资料,自己总结的关于SCORM标准的学习资料,前面为理论部分,中间为SCORM标准课件的制作工具和使用教程,后面为moodle测试平台的安装和使用教程。(因为原创,所以将本人的PPT转化成PDF上传的)
Scorm课件标准,详细讲述Scorm课件与平台交互的标准协议。
笔者自己总结各个官网学习资料,做的总结了重点的PPT,以及一些课件制作工具的使用,以及测试平台moodle的安装和使用等。
用于测试Scorm课件的打包文件,可以在LMS平台上进行测试学习。
三个SCORM标准的课件包,有单个SCO和多个SCO的实例,还有用软件制作的
符合scorm标准的课件资源,标准的符合scorm的课件!
基于FLASH开发的SCORM标准课件,可用于平台演示与测试。有一定借鉴价值。
介绍SCORM标准的课件,讲述scorm的相关知识,通俗易懂……
播放器scorm播放器
Scorm自定义播放器
可以测试所制作的课件是不是符合SCORM1.2或2004标准的实用工具.
scorm标准课件实例,三分屏在线培训。
scorm 官方javascript库,包含12版和2004版,可用户scorm播放器的开发,SCORM_12_APIWrapper、SCORM_2004_APIWrapper
符合SCORM2004标准的课件符合SCORM2004标准的课件符合SCORM2004标准的课件
一个scorm标准范例,网页形式,是一个不可多得的开发scorm的学习资料