2

我有几个关于 Android 和 SCORM 的问题。在这两个领域我都很新,我只花了一个晚上在网上挖掘一些答案。

我发现的主题是关于将 SCORM 包与 LMS 同步,但我不需要。我只是想知道如何在 android 设备(带有 Android 4+ 操作系统的联想平板电脑)上播放(只播放,不需要任何同步或跟踪)SCORM 包。如果我尝试制作自己的允许浏览本地 SCORM 包的应用程序,我可以使用 WebView 组件启动 SCORM 吗?

我找到了这个教程:

http://support.scorm.com/entries/21826060-RSOfflinePlayer-Developer-Tutorial

其中有部分:

播放内容和同步结果

我在其中找到了一些关于配置此 WebView 组件以播放 SCORM 内容的有趣源代码,但我不确定是否需要 RSOfflinePlayer.jar。

我还听说,如果设备支持 Flash,我将能够使用浏览器启动 SCORM - 是真的吗?

也许你知道一些可以做到这一点的应用程序?或者可以提供帮助的图书馆?

有没有人有经验:
1)Java SCORM API:

会粘贴 URL,但我需要更多的声誉

2) 席琳

https://code.google.com/p/celine-scorm/

任何帮助都会得到认可,不仅是我,还有患有不同疾病的孩子(我们只是试图帮助他们的学生)。

4

3 回答 3

4

哈维尔几乎是对的。尽管如此,我还是会尝试再次解释这一点。也许您会从中收集更多信息。

每个 SCO 基本上都是一个压缩网页。您必须解压缩并查找 imsmanifest.xml,在其中找到初始文件(index.html、player.html 等)。它不会位于资源下。您首先必须查看Organizations > Organization > Item > Identifierref,它会给您一个 ID。然后你必须看Resources > Resource with the above ID > href价值。这是您要查找的文件。

示例(index.html 是您需要的文件):

<organizations default="someorg">
  <organization identifier="someorg">
    <title>Some Title</title>
    <item identifier="CourseItem01" identifierref="SCO_Resource_01" isvisible="true">
      <title>SCO Title Here</title>
    </item>
  </organization>
</organizations> 
...
...
<resources>
  <resource identifier="SCO_Resource_01" type="webcontent" adlcp:scormtype="sco" href="index.html">
    <file href="index.html"/>
    <file href="SCORM_API_wrapper.js"/>
...

找到它后,只需在 WebView 中打开它,它就会尝试在父窗口中连接到 SCORM API。您必须提供一些虚拟函数来欺骗它,使其认为它确实连接到 LMS 并照常进行。否则它将失败或向您发出警报。

于 2013-10-19T20:22:55.253 回答
3

我没有任何 Android 经验,但我有一些使用 SCORM 的经验。

要播放 SCORM 对象,您需要在正确的环境中打开正确的文件,正确的文件在 imsmanifest.xml 文件中说明,该文件将始终位于 zip 包的顶层,您必须寻找类似这个:

<resources>
  <resource identifier="546468" type="webcontent" href="index.htm" adlcp:scormtype="sco">
    <file href="index.htm" />
  </resource>
</resources>

这意味着您必须在顶层打开 index.htm,通常您必须使用 adlcp:scormtype="sco" 查找第一个资源(如果您需要更多详细信息,请阅读 SCORM 规范)。

当此页面加载时,它将查找 API 对象,它必须在父窗口或父框架中,您将需要一个虚拟 SCORM API,例如:

function ScormAPIClass()
{   
    this.GetLastError = function (){return 0};
    this.GetErrorString = function (param){return ""};
    this.GetDiagnostic = function (param){return ""};
    this.SetValue = function (element, value){
                                              //you need something else here
                                              return true};
    this.GetValue = this.SetValue = function (element){
                                                       //you need something else here
                                                       return true};
    this.Initialize = function (param){return true};;
    this.Terminate = function (param){return true};
    this.Commit = function (param){return true};;
    this.version = "1.0";
}


window.API_1484_11 = new ScormAPIClass();

SCORM 对象将假定您的 API 有效,因此,如果 set 和 get 函数不真实,这可能会根据对象逻辑生成错误。另外,我没有测试代码,只是为了让您了解您需要什么。

我希望这对你有帮助。

于 2013-10-17T11:51:52.803 回答
3
  1. 首先你必须了解 Scorm 的结构。

  2. 您可以看到 Scorm 包是一个 zip 文件,其中包含多个文件夹和一个清单文件。

  3. 首先,您必须解压缩 Scorm 的 zip 包,然后必须解析该 imsmanifest.xml 文件并维护两个列表,其中一个包含标题和与该标题对应的 html 文件的其他地址。

  4. 我使用 sax2r2 解析器来解析该清单文件,并得到两个数组列出一个包含 html 文件的标题和其他地址的数组。

  5. 稍后你只需要用titles数组填充你的IOS列表,当用户点击该列表的任何标题时,获取列表的位置并从addresses数组列表中检索与该标题对应的html文件的地址。

  6. 最后你可以在你的IOS的webview中打开html文件,确保启用了打开scorm html5文件所需的参数。

在 android 中,我启用并设置了这些值,这是 java 代码,但它可能会对您有所帮助。

WebViewClient webViewClient = new WebViewClient();
    webView.setWebViewClient(webViewClient);
    webView.clearCache(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.setInitialScale(1);
    webView.getSettings().setBuiltInZoomControls(true);
    webView.clearHistory();
    webView.getSettings().setAllowFileAccess(true);
    webView.getSettings().setDomStorageEnabled(true);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.getSettings().setPluginState(WebSettings.PluginState.ON);
    webView.getSettings().setLoadWithOverviewMode(true);
    webView.getSettings().setUseWideViewPort(true);
    webView.getSettings().setPluginState(PluginState.ON);
    webView.loadUrl("file://" + open_scorm.scorm_path
            + open_scorm.scorm_name + "/" + open_scorm.href.get(0));

webView 用于在 android 中打开 html/html5 文件,我在 android 中启用了上述设置,这些设置在 android 中是默认的,可能在 ios 中你只需要加载该 html 文件并且 dnt 必须启用所有这些值。

在上面你可以看到我正在检索 href.get(0) 这是 scorm 的第一个 html5 文件。

简单来说,您只需解压缩 scorm ,解析 imsmanifest.xml 文件并获取它的数据并使用它来打开/解析 scorm。

于 2014-01-31T07:57:56.120 回答