【问题标题】:Playing SCORM on Android devices在 Android 设备上玩 SCORM
【发布时间】:2013-10-23 22:13:53
【问题描述】:

我有几个关于 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:

会粘贴网址,但我需要更多声誉

2) 席琳

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

任何帮助都会受到赞赏,不仅是我,还有患有各种疾病的孩子(我们只是想帮助他们的学生)。

【问题讨论】:

    标签: java android scorm


    【解决方案1】:

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

    每个 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 并照常进行。否则它将失败或向您发出警报。

    【讨论】:

    • 感谢您的回答(这不是很受欢迎的问题,非常感谢)。不过我有一个问题——我需要安装任何 Flash 播放器吗?它是否依赖于包 - 有些需要,有些不需要?无论如何,现在我至少可以开始从事这个项目了,因为我今天拿到了设备 ;-)
    • 一个scorm包只不过是一个压缩网页,所以是的,它取决于网页。它可能需要也可能不需要 Flash、Java、Silverlight,你有什么。当前大多数 scorm 创作工具都生成 html5 输出,而大多数旧工具确实使用 Flash 来播放内容。
    【解决方案2】:

    我没有任何 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 函数不真实,则可能会根据对象逻辑生成错误。 另外,我没有测试代码,只是为了让您了解您需要什么。

    希望对你有所帮助。

    【讨论】:

    • 感谢您的回复,它确实有助于理解 SCORM 的基础知识。一旦我得到这个设备,我就会开始工作,我会分享结果。
    • 对于愚蠢的评论我很抱歉,但任何人都可以给我下载 RSOfflinePlayer.jar 的链接。谷歌让我一无所获
    【解决方案3】:
    1. 首先您必须了解 Scorm 的结构。

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

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

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

    5. 1234563 .
    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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 2014-10-17
      • 2014-04-18
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多