«функция времени сна» делает проблему в изменяющемся цикле видео - PullRequest
0 голосов
/ 19 февраля 2019

Я новичок, и я создал код для цикла запуска видео в Raspberry Pi с помощью ультразвукового датчика, но проблема в том, что видео ('movie1' и 'movie2') не могут быть мгновенно изменены в зависимости от расстояния.Я думаю, эта проблема вызвана функцией time.sleep, но когда я удаляю части сна, мой код не работает, и даже Raspberry pi отключается.Как я могу решить эту проблему?Если у вас есть какие-либо предложения, я был бы очень признателен!Спасибо!

Я подумал о функции datetime вместо time.sleep, но я понятия не имею, как поместить функцию в мой код.

while True:
        dist = distance()
        time.sleep(1)

        if (distance() <= 100):
            zone = 1
        if (distance() >= 2000):
            zone = 1
        elif (100 < distance() < 2000):
            zone = 2

        if (zone == 1):
            Popen(['/usr/bin/omxplayer', '--display','0', movie1])
            time.sleep(6)

        if (zone == 2):
            Popen(['/usr/bin/omxplayer', '--display','0', movie2])
            time.sleep(6)

1 Ответ

0 голосов
/ 19 февраля 2019

когда вы удаляете time.sleep(6) код, открывайте movie1 снова и снова.Вы можете попробовать добавить оператор controll для прерывания бесконечного цикла, например:

zone1,zone2=True,True #before the loop

if (distance() <= 100):
    zone = 1
if (distance() >= 2000):
    zone = 1
elif (100 < distance() < 2000):
    zone = 2

if (zone == 1 and zone1):
    Popen('killall "omxplayer.bin"',shell=True)
    Popen(['/usr/bin/omxplayer', '--display','0', movie1])
    zone1=False
    zone2=True

if (zone == 2 and zone2):
    Popen('killall "omxplayer.bin"',shell=True)
    Popen(['/usr/bin/omxplayer', '--display','0', movie2])
    zone2=False
    zone1=True

или

Я предлагаю вам воспроизвести видео на python.IDK, если работает с Raspberry Pi, но OpenCV подходит для этой работы

...