“时间睡眠功能”在不断变化的视频循环中造成问题

时间:2019-02-18 23:38:06

标签: python loops video raspberry-pi3 playback

我是初学者, 我使用超声波传感器在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 :(得分:0)

当您删除time.sleep(6)代码时,一遍又一遍地打开movie1。您可以尝试添加控制语句来打破无限循环,例如:

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如果可以与rapiberry pi一起使用,但是opencv可以胜任这项工作