我有从 Adob​​e Presenter 7 返回的这个字符串。它称为 suspend_data,类型为 CMIString4096 (由文档)

CMISTRING4096一组ASCII字符,最大长度为4096个字符。

这是字符串:

aG1111111000000000BB001EC%2EacC%7E%24GS%2AayjHm110BKCBBB0B0EBAB1B1ED%2EicC%7E%24GS%2AlfkHm110BKDBCB0B0EBBB0B0EBAB1B1EE%2EwcC%7E%24GS%2ACBlHm100BK DB2BCBCDB1BABBDB0BBBADF%2E7cC%7E%24GS%2A4GmHm110BKBB0Ebl%C3%A1rRbl%C3%A1r%3Bgr%C3%A6nn%3Brau% C3%B0urB

它看起来像带有一些 urlencoded 字符的 base64。当我 urldecode() 字符串时,最后几个字符类似于一些数据,但它是 utf8 格式,然后我对其进行 utf8_decode 并看到这一点。

aG1111111000000000BB001EC.acC~$GS*ayjHm110BKCBBB0B0EBAB1B1ED.icC~$GS*
lfkHm110BKDBCB0B0EBBB0B0EBAB1B1EE.wcC~$GS*CBlHm100BKDB2BCBCDB1BABBDB0BBBADF.
7cC~$GS*4GmHm110BKBB0EblárRblár;grænn;rauðurB

好吧,我更接近一些数据(最后),但看起来仍然一团糟。当我使用 base64_decode() 时,我得到了一些二进制混乱,但我不知道它到底是什么。

有谁知道这些数据是什么以及我如何从中获得一些意义?顺便说一句,我使用的是 PHP,因此只有其中的函数适用。

有帮助吗?

解决方案

cmi.suspend_data 字段中存储的数据只是 SCO(内容)可以用来保存其当前状态的数据桶。数据没有语义或定义的结构。在许多情况下,数据的含义可以被猜测或逆向工程,但 Adob​​e Presenter 生成的内容似乎并非如此。

suspend_data 字段限制为 4096 个 ASCII 字符。对于某些 SCO,这无法提供足够的存储空间来完全保留当前状态。在许多情况下,面临这种困境的内容开发人员会对状态数据应用压缩算法,以将其压缩到有限的大小。看起来这就是 Adob​​e Presenter 正在做的事情。我的猜测是,他们将数据压缩为您发现的未编码状态,然后应用 url 编码以确保所有生成的字符都可以安全发送到 LMS。

挂起数据开头的 1 和 0 字符串可能是有意义的。它可能与学习者之前观看过的课程中的幻灯片相对应。为了验证这一点,通过 SCORM TestTrack(可在 scorm.com)并使用生成的调试日志来观察挂起数据如何随着用户学习课程的进展而变化。

SCORM 提供了相当多的其他数据模型元素,这些元素确实具有与课程当前状态相关的特定含义。这里有一个 所有可用数据模型元素的列表. 。SCORM TestTrack 调试日志还将向您显示 Adob​​e Presented 内容使用了哪些数据模型元素。

其他提示

我不认为SCORM定义什么suspend_data字段包含或者是什么格式。 这是完全由内容/课(的Adobe Presenter你的情况),但它只能是文本,并只限于4096个字符。

此字段可以被内容被用于存储任何类型的状态的应在启动下一次传回给内容。

实测值

  

<强> 13。 cmi.suspend_data

     

读/写

     

目的是作为用于存储位置   任何信息,一个SCO想   持续,直至随后的会话。

此处。因此,作为马丁写SCORM只定义了数据类型,而不是编码或 cmi.suspend_data 。也许可以帮助您确定编码。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top