'time sleep function'在不断变化的视频循环中出现问题



我是初学者我通过使用超声波传感器制作了Raspberry Pi中视频触发循环的代码,但是问题是视频(" Movie1"one_answers" Movie2")无法立即改变取决于距离。我想,这个问题是由时间引起的。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)

一遍又一遍地删除time.sleep(6)代码打开Movie1。您可以尝试添加一个控制语句以打破Infinit循环,例如:

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对此工作有益

最新更新