私はomplayerを使用して4つのビデオを再生する必要があるラズベリーパイ3を使用してDIYプロジェクトを行っています。Pythonを使用してラズベリーパイのomxplayerプレーヤーを殺すにはどうすればいいですか
あなたはprotoboard上の特定のボタンを押すと各ビデオが再生されます:
- 押しボタン1 - ビデオ1
- 押しボタン2を再生 - ビデオ2
- 押しボタン3を再生 - ビデオを再生3
- 押しボタン4 - ビデオ4
を再生する私は、私はいずれかのボタンを押すと、必ず4つの動画を再生するに成功しました次のPythonコードを使用してください。
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の実行中にいずれかのボタンを押すと、何も起こりません。私が達成したいのは、私がプロトボード上の任意のボタンを押すたびに、omxplayerはビデオの再生を停止し、新しい再生を開始することです。彼らは、以下のリンクではなく、成功せずに言うよう
私はPIPEを使用してomxplayerキルについて何かを読んだ:任意の助けが理解されるであろう
How can I kill omxplayer by Python Subprocess
ありがとうございました!上記のコードが意図したとおりに動作していなかったにもかかわらず。適切に機能する別のソリューションが必要でした。 – Iker