在Android设备上播放SCORM

关于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/

任何帮助都将得到满足,不仅是我,还有患有各种疾病的孩子(我们只是学生试图帮助他们)。

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

每个SCO基本上都是一个压缩的网页。 你必须解压缩并找到imsmanifest.xml,找到那里的初始文件(index.html,player.html,类似这样)。 它不会位于资源之下。 首先,您必须查看“ Organizations > Organization > Item > Identifierref ,它将为您提供ID。 然后,您必须Resources > Resource with the above ID > href值查看Resources > Resource with the above ID > href 。 这是您要查找的文件。

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

   Some Title  SCO Title Here    ... ...     ... 

找到它之后,只需在WebView中打开它,它就会尝试在父窗口中连接到SCORM API。 你必须提供一些虚拟函数来欺骗它,以为它确实连接到LMS并像往常一样继续。 否则它将失败或向您发出警报。

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

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

      

这意味着您必须在顶层打开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函数不是真的,则可以根据对象逻辑生成错误。 另外,我没有测试代码,只是为了让你知道你需要什么。

我希望这对你有帮助。

  1. 首先,你必须了解Scorm的结构。

  2. 你可以看到Scorm包是一个包含几个文件夹的zip文件和一个清单文件。

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

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

  5. 稍后你只需用标题数组填写你的IOS列表,当用户点击该列表的任何标题时获取列表的位置并从地址数组列表中检索与该标题对应的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。