1

我正在建立一个实验,在每次试验中,受试者可以通过按下某些键来多次重复刺激。例如,有 2 个声音:s1 和 s2。s1 与键“a”相关联,s2 与键“j”相关联。每当对象按“a”时,就会播放 s1。s2 也一样。空格键用于终止当前的试验并跳转到下一个试验。

现在我可以在按键后播放刺激,方法是在 s1 声音组件的条件字段中使用“$event.getKeys('a')”,在 s2 声音组件中使用“$event.getKeys('j')” . 但这只会在试验中播放每个刺激。第二次按下按键,没有声音。

所以我的问题是,我应该怎么做才能在每次试验中,每次按下指定键时都可以播放刺激?

4

1 回答 1

1

Builder 声音组件对此并不理想:正如您所注意到的,如果为起始指定了条件,则每次试验只能触发一次声音。

另一种方法是在代码组件中创建一个非图形声音对象,然后在每个试验的每一帧检查按键,并根据需要触发声音。插入一个代码组件。在“开始实验”选项卡中,输入如下内容:

j_sound = sound.Sound(u'A', secs=0.5) 
a_sound = sound.Sound(u'B', secs=0.5) 

然后,在“每一帧”选项卡中,输入如下内容:

response = event.getKeys(keyList=['a','j'])
if 'a' in response:
    a_sound.play()
elif 'j' in response:
    j_sound.play()

这可以改进以处理在声音已经播放时进行的按键操作,但应该可以帮助您入门。

于 2014-06-16T01:08:53.580 回答