【问题标题】:SCORM package downloading for offline viewingSCORM包下载以供离线查看
【发布时间】:2015-09-21 14:56:20
【问题描述】:

我正在尝试构建一个离线 SCORM 播放器和跟踪器。现在,SCORM 并非旨在支持移动设备,但市场的最新发展催生了一些允许离线播放和跟踪 SCORM 包的产品/播放器。你们中的大多数人会建议将 tin-can API 作为更好的解决方案,但我不倾向于它,因为它根本没有很多 LMS 符合/支持它。我编写了符合 SCORM 1.2 和 SCORM 2004 规范的课程,这些规范仍然是电子学习行业中最广泛的 SCORM 实施。但是如何开始构建离线 SCORM 播放器和跟踪器呢?我目前正在使用第三方 LMS 来播放我的课程。那么,我的播放器是否必须先获得 LMS 的授权才能下载课程?这是在 API 的帮助下完成的,还是有其他方法可以实现?简而言之,如何构建离线 SCORM 播放器和跟踪器?

提前感谢您的帮助!

【问题讨论】:

    标签: java android scorm


    【解决方案1】:

    如果不对 LMS 进行修改,离线 SCORM 是不可能的。事实上,完全无需更改课程本身就可以实现离线 SCORM 跟踪。

    如果您想离线跟踪某些内容,并且可以与您无法控制的各种 LMS 一起使用,那么 Tin Can API 是您的最佳解决方案。虽然 LMS 中 SCORM 的采用率高于 Tin Can 采用率,但离线 SCORM 支持率非常低。

    这里有一些high level technical diagrams。如您所见,它涉及将离线 SCORM 技术集成到 LMS 中。

    【讨论】:

      【解决方案2】:

      离线有两个问题,第一个很容易做到 - 使用 SCORM API,并存储数据直到 LMS 本身可用于连接和更新(尽管显然从 LMS 获取数据需要连接,并且希望您在此之前不要丢失本地数据)。

      更难的部分可能是下载正确的内容。根据内容本身,清单应该列出所有必需的文件,但这并不经常发生 - 因此在线运行 SCO 并缓存它所需的所有文件是最合乎逻辑的事情 - 但是这在动态内容的情况下效果不佳。

      由于它是您的课程来源,您应该知道运行它需要什么,因此如果您将其打包为一个应用程序,您只需提供一个 SCORM API 可以缓存数据直到连接可用,然后更新那时的 LMS。

      很自然地,LMS 本身需要能够支持从 SCO 中出现的数据,而不需要它作为启动机制 - 因此,您需要一个自定义数据传输层来有效地处理它(但这也意味着您可以加密和压缩数据)。困难的部分是学习 LMS 本身如何处理传入的数据以添加它。

      我唯一与此相关的其他评论-如果它仅用于应用程序,那么您可能不需要 LMS,您可能只需要数据存储和检索部分-如果您想自己动手,这会简单得多-也是 Tin Can API 擅长的地方。

      【讨论】:

      • 嘿!谢谢你的回答。但让我告诉你,我对 SCORM 场景很陌生,结果证明它已经过时了!我已经研究了 SCORM 大约一个星期,如果技术细节更具体,那将是真正的膨胀。问题是使用第三方 LMS 对开发过程有很多限制。我知道 SCORM 旨在有一个通用的、一致的启动机制(LMSes)所以..任何关于我如何真正开始编写这些东西的想法都会非常有帮助......我真的不知道从哪里开始......
      • 我花了几个月的时间才认为自己真正了解 SCORM(公平地说,这只是我必须学习的一小部分) - 但是阅读所有内容是实现目标的好方法.我会向您指出 stackoverflow.com/questions/19392554/… 看起来像一些有用的信息,我还发现通过 Conformance 文档查看应该有什么的好信息(2004r3 = adlnet.gov/wp-content/uploads/2011/07/…
      【解决方案3】:

      可以实现离线,但通常需要采取中间路线来取回用户数据。所有数据都可以存储在本机 JSON(CMI 对象)中,可以暂停/恢复和/或存储到 sqlite、本地存储或其他数据库。像 Node Webkit 这样的技术,或其他允许在插入 USB/DVD 类型驱动器/磁盘时创建 Web 服务器的可部署选项。这在几乎没有互联网/手机接入或位置不可靠的地区很常见。

      1. 完成后打开 USB 驱动器并收集数据
      2. 打印证书或截屏
      3. 电子邮件与其他选项之一相结合
      4. 发布到 API/公共服务的数据声明,能够使用类似于 TinCan cmets 的令牌、用户 ID/电子邮件 - 当互联网可用时。

      但同样,您必须根据自己的需要开发从简单到复杂的 SCORM 运行时 API,以及为特定用户管理自定义离线课程/课程的能力。然后决定采用 NWK、Stunnix 或其他技术。有些是免费的,有些是收费的。

      只要让您的内容脱机,然后在互联网连接和运行时 API 存在时立即与 LMS 同步备份 - 这需要在内容方面进行更多工作以检测不存在 API,并将所有 SetValue / LMSSetValue 调用存储到本地存储。然后在获取 API 后,可以在其重新联机时通过 Runtime API 进行语句。非常非常类似于仅跟踪更改并同步它们。

      祝你好运

      【讨论】:

      • 与我的回答类似,但关于物理数据传输的重点是 - 如果没有太多重要数据,也可以使用 QR 码之类的东西 - 但它也适用于打印结果:-)
      • 非常正确,我也看到问题的作者说android / java所以我们可能也在谈论一个带有Web View的应用程序。
      • 你是绝对正确的,马克..它必须是 android 或 iOS 的 webview/UIWebview ..谢谢你的回答,我得到了更多的信息。然而,你的回答给了我很多摘要..我对 SCORM 很陌生..您的回答告诉了我一些直到现在我还不知道的新技术...关于我如何开始编码的任何想法?我在哪里寻找参考资料?我仍然必须围绕整个 SCORM 的事情来思考......我是一个菜鸟 - 正如你所说的...... :-)
      • SCORM(通信部分)只是 JavaScript。因此,您只需要通过 UIWebView 或其他 HTML Wrapper 公开“API”(SCORM 1.2)或“API_1484_11”(SCORM 2004)的运行时 API。如果您需要在这些级别之间进行对话,则有 JavaScript 到 UIWebView 的桥梁可以为您提供一些能力。这需要对选项/实施进行更多研究。
      猜你喜欢
      • 2011-05-15
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      • 2015-02-09
      • 2013-05-25
      • 2015-03-26
      • 1970-01-01
      相关资源
      最近更新 更多