製作SCORM課件離線播放器(C#)
概述
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
<!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>
配置檔案配置課程的入口檔案
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離線播放器。
相關文章
- PPT課件的製作經驗
- PowerPoint課件製作的一些基本原則
- 專案管理培訓-範圍管理課件製作思路專案管理
- 專案管理培訓-整體管理課件製作思路專案管理
- 百度離線地圖瓦片圖製作地圖
- 創作課程和SCORM的強大工具iSpring Suite詳細介紹ORMSpringUI
- 課件製作工具2
- EDM郵件製作
- Unity製作本地離線數字人功能模組記錄Unity
- WPS演示教程:物件填充效果在課件製作中的應用物件
- 新手製作ppt詳細步驟 初學者怎樣做課件ppt教程
- 離屏Canvas——製作放大鏡效果Canvas
- 離屏Canvas——製作水印圖片Canvas
- 製作郵件模板的規範
- Dreamweaver製作虛線邊框教程,Dreamweaver怎麼製作虛線表格?
- [微信音訊播放器] html5 audio 製作的微信播放器音訊播放器HTML
- 夢幻郵件製作v1.2
- 課件
- Python應用03 使用PyQT製作視訊播放器PythonQT播放器
- C#自定義控制元件製作篇C#控制元件
- 學它!李航《統計學習方法》課件,清華大學深圳研究院教授製作
- [Fireworks+Dreamweaver製作網站]第7課上網站
- 專業證件照製作:My Photo Pro for MacMac
- 使用Vue製作一個屬於自己的音樂播放器!Vue播放器
- 【.NET 與樹莓派】用 MPD 製作數字音樂播放器樹莓派播放器
- 【html、css、jq】製作一個簡潔的音樂播放器HTMLCSS播放器
- HTML5+CSS3+jQuery製作視訊播放器完全指南HTMLCSSS3jQuery播放器
- C#製作可控制介面的windows服務C#Windows
- 網頁製作時結構與表現相分離網頁
- C# IEquatable<T>介面與可用與作Key的條件C#
- Solidworks 板件製作斜接法時的設定Solid
- 電子課件
- 怎樣寫課件,怎樣從課件中學習
- C# 離線人臉識別 虹軟ArcFace 2.0 demoC#
- C# 離線人臉識別 ArcSoft V2.0 DemoC#
- 基於HTML5 Canvas WebGL製作分離摩托車HTMLCanvasWeb
- jQuery製作淘寶商城商品列表多條件查詢功能jQuery
- 淺談機房接地線的製作方法