Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
由按钮控制的raspberry pi 3网络浏览器(Python)_Python_Chromium_Raspberry Pi3_Gpio - Fatal编程技术网

由按钮控制的raspberry pi 3网络浏览器(Python)

由按钮控制的raspberry pi 3网络浏览器(Python),python,chromium,raspberry-pi3,gpio,Python,Chromium,Raspberry Pi3,Gpio,嗨,我正试图得到2个网络摄像头输出显示在一个全屏幕模式运行的网络浏览器。 到目前为止,只要我禁用全屏/信息亭,它就可以工作,一旦全屏打开,我的脚本就会暂停。 当我关闭webbrowser时,脚本将继续,我可以使用打开新浏览器的按钮,然后脚本再次暂停(目的是使脚本无休止地循环而不暂停) 有没有一种方法可以在不做大改动的情况下解决这个问题(我注意到很多人都喜欢selenium,这不是一个选项),并且使用子进程而不是os.system会得到同样的结果。发生这种情况的原因是os.system()等待进程

嗨,我正试图得到2个网络摄像头输出显示在一个全屏幕模式运行的网络浏览器。 到目前为止,只要我禁用全屏/信息亭,它就可以工作,一旦全屏打开,我的脚本就会暂停。 当我关闭webbrowser时,脚本将继续,我可以使用打开新浏览器的按钮,然后脚本再次暂停(目的是使脚本无休止地循环而不暂停)


有没有一种方法可以在不做大改动的情况下解决这个问题(我注意到很多人都喜欢selenium,这不是一个选项),并且使用子进程而不是os.system会得到同样的结果。

发生这种情况的原因是os.system()等待进程完成,并且在出现这种情况之前不会继续编写代码。通过在命令末尾使用“&”,命令不必完成,并且按钮仍然可以使用

#Import libraries
import RPi.GPIO as GPIO
from time import sleep
import os

#Set up the URLs
url1 = 'http://10.0.0.31/mjpg/video.mjpg'
url2 = 'http://10.0.0.32/mjpg/video.mjpg'

#Set up GPIO pins
GPIO.setmode(GPIO.BCM)
array = [4,17]
GPIO.setup(array, GPIO.IN, pull_up_down=GPIO.PUD_UP)

#Open the first webpage
os.system('chromium-browser --app=http://10.0.0.31/mjpg/video.mjpg --kiosk & ')

while True:
    if ( GPIO.input(17) == False ):
        print('Button 1 Pressed')
        os.system('date')
        os.system('pkill chromium-browser')
        print (GPIO.input(17))
        os.system('chromium-browser --app=http://10.0.0.32/mjpg/video.mjpg --kiosk &')
        sleep(0.5)
    if ( GPIO.input(4) == False ):
        print('Button 2 Pressed')
        os.system('date')
        os.system('pkill chromium-browser')
        print (GPIO.input(4))
        os.system('chromium-browser --app=http://10.0.0.31/mjpg/video.mjpg --kiosk &')
        sleep(0.5)
else:
    os.system('clear')
    print ('Press a key')
    sleep(0.1)

非常感谢,非常简单,然后这是不可能的,我还没有代表投票,但这是解决方案谢谢,如果有可能,请投票这个答案或标记为接受的解决方案。很高兴我能帮忙。
#Import libraries
import RPi.GPIO as GPIO
from time import sleep
import os

#Set up the URLs
url1 = 'http://10.0.0.31/mjpg/video.mjpg'
url2 = 'http://10.0.0.32/mjpg/video.mjpg'

#Set up GPIO pins
GPIO.setmode(GPIO.BCM)
array = [4,17]
GPIO.setup(array, GPIO.IN, pull_up_down=GPIO.PUD_UP)

#Open the first webpage
os.system('chromium-browser --app=http://10.0.0.31/mjpg/video.mjpg --kiosk & ')

while True:
    if ( GPIO.input(17) == False ):
        print('Button 1 Pressed')
        os.system('date')
        os.system('pkill chromium-browser')
        print (GPIO.input(17))
        os.system('chromium-browser --app=http://10.0.0.32/mjpg/video.mjpg --kiosk &')
        sleep(0.5)
    if ( GPIO.input(4) == False ):
        print('Button 2 Pressed')
        os.system('date')
        os.system('pkill chromium-browser')
        print (GPIO.input(4))
        os.system('chromium-browser --app=http://10.0.0.31/mjpg/video.mjpg --kiosk &')
        sleep(0.5)
else:
    os.system('clear')
    print ('Press a key')
    sleep(0.1)