Moodle cmi.total_time参数不返回任何内容

Moodle cmi.total_time参数不返回任何内容,moodle,scorm,scorm2004,Moodle,Scorm,Scorm2004,我正在为SCORM 2004产品编程。 我可以随时更新会话,这很有效。 我可以设置状态(通过、失败等) 我还可以得到cmi.定位时间。没问题 但是我没有成功地得到总时间!(cmi.总时间)。 我在2个LMS上进行了测试: 在Ganesha上,API.GetValue('cmi.total_time')是一个空字符串 在Moodle上,API.GetValue('cmi.total_time')只是一个“p” 但是,我有正确的日志和正确的会话时间 有人有主意吗 谢谢大家! 编辑。 我还尝试了c

我正在为SCORM 2004产品编程。 我可以随时更新会话,这很有效。 我可以设置状态(通过、失败等) 我还可以得到cmi.定位时间。没问题

但是我没有成功地得到总时间!(cmi.总时间)。 我在2个LMS上进行了测试:

  • 在Ganesha上,API.GetValue('cmi.total_time')是一个空字符串

  • 在Moodle上,API.GetValue('cmi.total_time')只是一个“p”

但是,我有正确的日志和正确的会话时间

有人有主意吗

谢谢大家!

编辑。 我还尝试了cloud.scorm.com和cmi.total_time每次返回PT0H0M0S。
编辑2。哦,我删除了Donal的编辑。

根据您提供的信息,我猜您正在尝试设置
cmi.session\u time
并在同一学习者会话中获得
cmi.total\u time
,这不会给出您期望的响应

cmi.total_time
包含当前学习者会话之前所有学习者会话的总持续时间,这意味着它将不包含在第二次学习者会话之前预期的值

设置好cmi.session\u时间后,请退出正在进行的SCO,然后返回,结束当前学习者课程。然后您应该看到,
cmi.total_time
现在填充了一个有效值


祝你好运

当您恢复第二个会话并尝试检索总时间时,是否能够检索到您在第一个会话中为cmi.location存储的值?如果不是,那么您可能没有暂停会话。为了使数据在下次启动时可用,您需要在终止第一个会话之前将cmi.exit设置为suspend


迈克

谢谢你的回答。不过我已经试过了。实际上,cmi.total_time是用户运行的所有会话时间的总和。但如果我离开上海合作组织,即使在3次上海合作组织会议(成功注册)后,我也无法获得cmi。total_time…这对我来说很有效。我想这就是我能提供的全部帮助。祝你好运嗨,迈克。事实上,我能够检索存储在cmi.location中的值。我不知道为什么会发生这种情况。如果您在SCORM Cloud中测试您的课程,您可以将调试日志发送给我,我很乐意查看。在scorm dot给mike发邮件过来好的mike谢谢。这里有一个有用日志的链接:在尝试检索cmi.total_time之前,我不必设置它(在上一个会话中),因为它是RO。同样在SCORM 1.2中,LMS使用cmi.session_时间计算总_时间。但是,我在日志中找不到任何API.SetValue(“cmi.session\u time”,string);我的代码是:API.SetValue(“cmi.location”,getTc());API.SetValue(“cmi.session_time”,“PT2H4M1S”)。。。