Итак, я пытаюсь запустить цикл for так, чтобы звук воспроизводился вместе с изображением до тех пор, пока звук продолжается. Я вижу изображение в течение очень короткого времени, а также слышу звук. Но потом все останавливается, я не могу дать вход в окно (я должен дать в j или f) в 0,85 секунды. После этого должно начаться новое испытание, но это не так. Не знаю, если это из-за этой ошибки, что я получаю:Python: использование pygame для воспроизведения звуков
sound1 = sound.SoundPygame(value=stimulussound)
AttributeError: 'SoundPygame' object has no attribute 'SoundPygame'
Я не понимаю, почему я получаю эту ошибку, так как SOUND1 разыгрывается первый судебный процесс. Но после того, как звук прекращается, изображение исчезает, фиксация пересечения отображается на экране, но фиксация пересечения не исчезает через 0,85 секунды ... А также, если я нажимаю J из F, она сохраняет ее в переменной! И это также спасает реакционное время! В любом случае, вот мой код, почему это не второе испытание, начиная с первого запуска?
#showing instructions
instructions = visual.TextStim(window, text=actualinstructions)
instructions.draw()
window.flip()
#waiting for j-key before rest of experiment runs
if event.waitKeys("j"):
window.flip()
start = True
#whileloop to start experiment
while start == True:
#forloop
for i in range (0,192):
#saving the two needed pathways in a variable
stimulusimage = conditiesalles[int(i)][int(2)]
stimulussound = conditiesalles[int(i)][int(3)] #f.e. C:\Users\Ineke\Documents\Python Scripts\Project\stimuli\Sounds\Negative\6.wav
#lengthofsound: using function
sound1 = sound.SoundPygame(value=stimulussound)
lengthofsound = sound1.getDuration()
#resetting timer and making a variable that knows the time
timerClock.reset()
currentTime = timerClock.getTime()
if (currentTime <= lengthofsound):
#imagestim
showingimage = visual.ImageStim(window, image=stimulusimage)
showingimage.draw()
window.flip()
#soundPygame
sound = sound.SoundPygame(value=stimulussound)
sound.play()
if (currentTime > lengthofsound):
timerClock.reset()
window.flip()
if (currentTime <= timefixationcross):
#fixatiekruis
Fixationcross.fixationscross(window)
#getKeys j of f = inputuser
if event.getKeys('j'):
inputuser = 'j'
reactiontime = currentTime
elif event.getKeys('f'):
inputuser = 'f'
reactiontime = currentTime
else:
inputuser = "geen input of foute knop gebruikt"
reactiontime = "geen reactie"
inputsuser.append(inputuser)
reactiontimesuser.append(reactiontime)
#closing the window
start == False
window.close()
Хорошо, теперь я вижу, что пошло не так. Больше не получайте ошибку. Также я наблюдал за тем, что у меня был звук и звук; Я просто использую sound1 сейчас. Но когда я пытаюсь запустить цикл while, мое созданное окно просто зависает и больше не реагирует на что-либо. Не удается закрыть его также с помощью window.close(). Возможно, вы знаете, как это решить? Благодаря! – Caeline
Да, это потому, что вторая-последняя строка должна иметь один знак равенства вместо двойного, т. Е. Присваивать значение '' start'' вместо сравнения. Прямо сейчас цикл 'while'' просто зацикливается навсегда, так как' 'start''' 'True'' навсегда. –