나는 omxplayer를 사용하여 4 개의 비디오를 재생해야하는 Raspberry Pi 3를 사용하여 DIY 프로젝트를하고 있습니다. 당신이 프로토 보드의 특정 버튼을 누르면 한 번파이썬을 사용하여 라스베리 파이에서 omxplayer 플레이어를 죽일 수있는 방법
각각의 영상이 재생됩니다 :
- 을 눌러 버튼 1 - 플레이 동영상 2
- 을 눌러 버튼 3 - - 플레이 비디오 비디오 1
- 을 눌러 버튼 2를 플레이 3
- 을 눌러 버튼 4 - 나는 버튼 중 하나를 누를 때마다 내가 4 동영상 재생에 성공 비디오 4
플레이 다음 파이썬 코드를 사용하십시오 :
import RPi.GPIO as GPIO
import time
import os
GPIO.setmode(GPIO.BCM) # Declaramos que los pines seran llamados como numeros
GPIO.setwarnings(False)
GPIO.setup(4, GPIO.IN) # GPIO 7 como entrada
GPIO.setup(17, GPIO.IN) # GPIO 17 como entrada
GPIO.setup(27, GPIO.IN) # GPIO 27 como entrada
GPIO.setup(22, GPIO.IN) # GPIO 22 como entrada
pathVideos = "/home/pi/VideoHD/Belen" # Directorio donde se encuentran los videos en HD
def reproducirVideos(nameVideo):
command = "omxplayer -p -o hdmi %s/%s.mp4" % (pathVideos,nameVideo)
os.system(command)
print "Reproduciendo el Video: %s " % nameVideo
def programaPrincipal():
print("Inicio")
while True:
if (GPIO.input(4)):
print("Iniciando Video: AMANECER")
reproducirVideos("amanecer")
elif (GPIO.input(17)):
print("Iniciando Video: DIA")
reproducirVideos("dia")
elif (GPIO.input(27)):
print("Iniciando Video: ATARDECER")
reproducirVideos("atardecer")
elif (GPIO.input(22)):
print("Iniciando Video: ANOCHECER")
reproducirVideos("anochecer")
else:
pass
print("Fin de programa")
GPIO.cleanup() #Limpiar los GPIO
programaPrincipal() #Llamamos a la funcion blinkLeds para ejecutar el programa
여기에 내 문제가 있습니다.
버튼 1과 같이 버튼 1을 누르면 전체 동영상 1이 화면에서 제대로 재생되기 시작합니다. video1이 실행되는 동안 아무 버튼이나 누르면 아무 일도 일어나지 않습니다. 내가 원했던 것은 프로토 보드에있는 버튼을 누를 때마다 omxplayer가 비디오 재생을 중지하고 새로운 재생을 시작해야한다는 것입니다. 그들은 다음 링크에 있지만 성공하지 말처럼
나는 파이프를 사용하여 omxplayer 살인에 대해 뭔가를 읽고 : 어떤 도움을 이해할 수있을 것이다
How can I kill omxplayer by Python Subprocess
감사합니다. 위의 코드에도 불구하고 의도 한대로 작동하지 않았습니다. 제대로 작동하는 또 다른 솔루션으로 나를 데려갔습니다. – Iker