MTURK:在预览中隐藏对象,在接受HIT时显示(URL在预览中更改,隐藏取决于URL)

时间:2015-09-04 17:10:30

标签: javascript audio amazon-web-services mechanicalturk transcription

我正在使用亚马逊机械土耳其人,这是一个完成简单任务的平台。我用它来获取转录的音频文件。 这是我的设置: 我正在使用基本的Web表单创建HIT,使用JWplayer

嵌入音频播放器

Mechanical turk有两个关于任务的视图(称为HIT),一个预览和接受任务时的常规视图。我想要做的是,当有人还没有接受任务时显示音频文件的15秒预览(并在接受时显示完整的音频)

我认为我包含了两个对象,预览15秒音频和完整音频,并根据URL进行隐藏或显示,当您预览/或接受任务时(以及保密规则),该URL会发生变化。

如果预览任务,则网址如下:https://www.mturk.com/mturk/preview?groupId=3IQQTV3
当任务被接受时,它还包含assignmentId = 3493something (另请看这里,他们建议使用“assignmentId = ASSIGNMENT_ID_NOT_AVAILABLE”来确定预览网址http://docs.aws.amazon.com/AWSMechTurk/latest/AWSMturkAPI/ApiReference_ExternalQuestionArticle.html

有人可以帮助我吗?我认为它可能是javascript,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

这是一个不完整的答案,因为它只显示了如何区分预览模式和接受模式。我正在标记这个“社区维基”,以便其他开发人员可以插入音频预览代码,如果他们知道如何做到这一点。

<script type="text/javascript">
/* DEFINE FUNCTION TO EXTRACT PARAMETERS FROM URL */
function turkGetParam( name ) { 
  var regexS = "[\?&]"+name+"=([^&#]*)"; 
  var regex = new RegExp( regexS ); 
  var tmpURL = fullurl; 
  var results = regex.exec( tmpURL ); 
  if( results == null ) { 
    return ""; 
  } else { 
    return results[1];    
  } 
}

/* THIS IS THE LINE TO CAPTURE THE ACTUAL URL: */
var fullurl = window.location.href;

/* ASSIGNS THE URL PARAMETERS TO JAVASCRIPT VARIABLES */
var assign = turkGetParam('assignmentId');
var hit = turkGetParam('hitId');
var worker = turkGetParam('workerId');

/* WHAT TO DO IF THE WORKER IS PREVIEWING THE HIT: */
if(assign=="ASSIGNMENT_ID_NOT_AVAILABLE") {
    // CODE FOR PREVIEW
}
else {
    // CODE FOR ACCEPTED HIT
}
</script>