omxplayer を使用して 4 つのビデオを再生する必要がある Raspberry Pi 3 を使用して DIY プロジェクトを行っています。
プロトボードの特定のボタンを押すと、各ビデオが再生されます。
- ボタン 1 を押す - ビデオ 1 を再生
- ボタン 2 を押す - ビデオ 2 を再生
- ボタン 3 を押す - ビデオ 3 を再生
- ボタン 4 を押します - ビデオ 4 を再生します
次の python コードを使用して、ボタンのいずれかを押すたびに、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 全体が画面上で適切に再生されます。video1 の実行中に任意のボタンを押しても、何も起こりません。私が達成したいのは、protoboard の任意のボタンを押すたびに、omxplayer がビデオの再生を停止し (再生中の場合)、新しいビデオを開始することです。
次のリンクで彼らが言うように、PIPEを使用してomxplayerを殺すことについて何かを読みましたが、成功しませんでした:
Python サブプロセスで omxplayer を強制終了するにはどうすればよいですか
どんな助けでも大歓迎です