我从Adobe Presenter 7获取此字符串。它名为suspend_data,类型为CMIString4096 (by the docs)
CMIString4096一组具有最大长度的ASCII字符 4096个字符。
这是字符串:
aG1111111000000000BB001EC%2EacC%7E%24GS%2AayjHm110BKCBBB0B0EBAB1B1ED%2EicC%7E%24GS%2AlfkHm110BKDBCB0B0EBBB0B0EBAB1B1EE%2EwcC%7E%24GS%2ACBlHm100BKDB2BCBCDB1BABBDB0BBBADF%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 btw,因此只有其中的功能适用。
答案 0 :(得分:4)
存储在cmi.suspend_data字段中的数据只是SCO(内容)可用于保持其当前状态的数据桶。数据没有语义含义或定义的结构。在许多情况下,数据的含义可以被猜测或反向设计,但对于Adobe Presenter生成的内容,情况似乎并非如此。
suspend_data字段限制为4096个ASCII字符。对于某些SCO,这不能提供足够的存储空间来完全保持当前状态。在许多情况下,面临这种困境的内容开发者将对状态数据应用压缩算法,以便将其压缩到有限的大小。看起来这就是Adobe Presenter在这里所做的事情。我的猜测是他们将数据压缩到您找到的未编码状态,然后应用url编码以确保所有生成的字符都可以安全地发送到LMS。
暂停数据开头的1和0字符串可能是有意义的。它可能对应于学习者以前观看过的课程中的哪些幻灯片。为了验证这一点,通过SCORM TestTrack(scorm.com免费提供)等工具运行课程可能会有所帮助,并使用生成的调试日志来观察暂停数据随着用户在课程中的进展而变化的方式。 / p>
SCORM提供了许多其他数据模型元素,这些元素具有与课程当前状态相关的特定含义。这是一个list of all available data model elements。 SCORM TestTrack调试日志还将显示Adobe Presented内容使用的那些数据模型元素。
答案 1 :(得分:1)
我不认为SCORM定义了suspend_data字段包含的内容或格式。 这完全取决于内容/课程(在您的情况下为Adobe Presenter),但它只能是文本,并且限制为4096个字符。
内容可以用来存储任何类型的状态,下次启动时应该将这些状态传回内容。
答案 2 :(得分:1)