Итак, моя цель такова:
Нажмите кнопку, светодиод включится и воспроизведение видео.
После полной продолжительности видео, светодиод и видео должны выключитьсяавтоматически.Кроме того, во время воспроизведения видео и светодиод, и видео можно отключить, нажав кнопку вручную.
В тот момент, когда я устанавливаю задержку в 10 с, светодиод включается для этих 10секунд.В противном случае светодиод вообще не включится.Также иногда выдается сообщение «omxplayer.bin: процесс не найден».Иногда, когда я снимаю сон, видео не воспроизводится.
GPIO.setmode(GPIO.BCM)
button1=17 #pin for button
LED1=18 #pin for LED
GPIO.setup(button1, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(LED1, GPIO.OUT)
BS1=False #button state
last_state1 = True
input_state1 = True
player = False #video player state
while(1):
#Read states of input
input_state1 = GPIO.input(button1)
#If GPIO(17) is shorted to Ground/ When the button is pressed.
if input_state1 != last_state1:
if GPIO.input(button1)==0:
print ("LED ON")
if BS1 ==False:
GPIO.output(LED1,True) #turn on LED
BS1=True
elif (player and not input_state1):
print(player)
print(input_state1)
os.system('killall omxplayer.bin')
omxc = Popen(['omxplayer', '-b', movie1])
print ("Killall omxplayer")
player = True
elif not input_state1:
omxc = Popen(['omxplayer', '-b', movie1])
print ("Video Plays")
player = True
sleep(10)
else:
os.system('killall omxplayer.bin')
player = False
print ("Video Stops")
GPIO.output(LED1,False)
BS1=False
print ("LED OFF")
sleep(.5)
#Set last_input states
last_state1 = input_state1
GPIO.cleanup()