Python: отображение видео в замедленном режиме

В настоящее время я работаю над экспериментом, который требует от участников как можно более быстрого реагирования на число, которое постепенно появляется на экране (уровень непрозрачности меняется со временем), нажимая соответствующую кнопку на клавиатуре. Для каждого из представленных номеров было создано видео (например, 0, которое постепенно появляется на экране). На моем собственном ноутбуке мне удалось воспроизвести эти фильмы в замедленном режиме, указав битный режим при создании окна Python. Однако на экспериментальных компьютерах в нашей лаборатории (Python версия 1.82.00) я получаю предупреждение, что "bitsMode" не рекомендуется.

Я все еще относительно новичок в Python, поэтому я не смог придумать другой (и, возможно, более изощренный) способ сделать это. Кто-нибудь из вас знает способ воспроизвести эти видео в замедленном режиме (например, скорость * 0,75)?

С уважением,

Роэль ван Дурен

event.Mouse(visible = False)
preTrialPause = [0.1, 0.5, 1, 1.5, 2, 2.5, 3]
blocks = 3
trialnum = 0

countDown(3)
win.update()

for block in range(blocks):
    for eachmovie in movies:
        trialPause = choice(preTrialPause)
        sleep(trialPause)

        mov = visual.MovieStim(win, movieFolder + eachmovie['Movie'], 
                                    flipVert=False, flipHoriz=False, loop=False)
        # Clear keyboard buffer.
        event.clearEvents(eventType = None)

        starttime = time()

        while mov.status != visual.FINISHED:
            mov.draw()
            win.flip(clearBuffer = True)
            for key in event.getKeys():
                responseTime = str(time() - starttime).replace(".",",")
                trialPause = str(trialPause).replace(".", ",")

                if key in ['0','1','2','3','4','5','6','7','8','9']:
                    win.update()
                    trialnum+= 1
                    if key == eachmovie['Movie'][3]:
                        response = 'Correct'
                    else:
                        response = 'Incorrect'
                    mov.status = visual.FINISHED

        if trialnum == 10 and block == 0 or trialnum == 10 and block == 1:
            trialnum = 0
            presentText(win, "\n\nVerplaats je nu weer naar de andere computer. We gaan door met het volgende geheugen-geur blok.")
            response = waitText(win, "")
            presentText(win, "\n\nEr zullen opnieuw langzaam cijfers op het scherm verschijnen. Zo gauw je het cijfer waarneemt, moet je zo snel mogelijk op hetzelfde cijfer op het toetsenbord drukken. Gebruik hiervoor alleen de cijfers rechts op het toetsenbord (het numpad). \n\n\nNogmaals, het gaat bij deze taak om snelheid, dus druk zo snel mogelijk het overeenstemmende cijfer in.\n\n\nDruk op enter om te beginnen!")
            countDown(3)
            win.update()
            break

        elif trialnum == 10 and block == 2:
            presentText(win, "\n\nVerplaats je nu weer naar de andere computer.")
            response = waitText(win, "")
            break
core.quit()

0 ответов

Другие вопросы по тегам