[英]Store audio replay count in Qualtrics loop & merge
我有一个循环和合并,可以循环超过 300 个音频文件。 对于每个音频文件,我想存储音频重播的次数。
Qualtrics.SurveyEngine.addOnReady(function(){
var plays = 0;
function audioEnded(){
if (plays == 0) Qualtrics.SurveyEngine.addEmbeddedData( "replays${lm://CurrentLoopNumber}", plays);
plays++;
Qualtrics.SurveyEngine.setEmbeddedData("replays${lm://CurrentLoopNumber}", plays);
}
jQuery('audio').on('ended', audioEnded);
});
这是我的解决方案,但它似乎不起作用,因为我的嵌入数据实际上并未存储在调查中(例如,它们未包含在调查流程中)。 手动创建 300 个嵌入式数据变量似乎不可行。 此外,我的 Loop & Merge 具有随机顺序,我认为嵌入的数据不会捕获这种随机顺序。
我能想到的更好的解决方案是使用某种分隔符将重播次数附加到用户的答案本身(文本答案)。 然而,我也不确定这怎么可能。
有小费吗?
是的,您可以将它们保存在一个分隔列表中。 如果您还没有一个 audioId 作为 Loop & Merge 字段(它可能只是数字 1 到 300),则添加一个。 此外,您只需要在最后更新一次嵌入的数据变量。 以下内容将以逗号分隔的随机顺序保存每个音频的 audioId:replays。 在 Loop & Merge 块之前的调查流中将 replaysList 初始化为空。
Qualtrics.SurveyEngine.addOnload(function(){
var replaysArr = "${e://Field/replaysList}".split(",").filter(Boolean);
var plays = 0;
jQuery('audio').on('ended', function() { plays++; });
Qualtrics.SurveyEngine.addOnPageSubmit(function() {
replaysArr.push("${lm://Field/1}:"+(plays-1));
Qualtrics.SurveyEngine.setEmbeddedData("replaysList",replaysArr.join(","));
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.