Salut a tous
Je cherche à réaliser un lecteur vidéo simple a partir d'un Raspberry 2 avec un petit script en Python.
On appuie sur un bouton 1 : OMXplayer se lance et lit une vidéo en plein écran
On appuie sur le bouton 2 : OMXplayer s’arrête et on retombe sur le bureau
Mon problème c'est de trouver le stop pour OMXplayer, j'ai vu des solutions tres differentes qui m'embrouillent.
Une partie de mon problème vient du fait qu'avec la méthode que j'ai trouvé, je n'ai pas accès a la commande 'q' qui permet de quitter comme expliqué dans la doc
j'ai beau taper 'q'" pendant que la video tourne, il ne se passe absolument rien (et je ne peux plus rien faire non plus vu que la vidéo tourne en plein écran)
J'ai testé sur 2 raspberry differentes avec des installes toutes fraiches et à jour...
Pour contourner le problème j'ai mélangé avec un bouton qui fait arrêter le raspberry, mais ce n'est pas ce que je souhaite au final
Je débute pas mal avec le python, si quelqu'un pouvait me lancer sur la bonne piste, ça serait vraiment sympa.
Pour l'instant mon script ressemble à ça :
Dernière modification par jeremixogg (2016-03-28 10:38:49)
Hors ligne
je mets le code ici
j'ai beau le mettre dans les balises, il a l'air de pas passer ???
import subprocess, time
import RPi.GPIO as GPIO
INPUT_PIN = 3
GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
GPIO.setup(INPUT_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def extinction(channel):
print("Appui détecté sur le GPIO 23")
GPIO.cleanup()
os.system('sudo halt')
video_started = False
play_process = None
val = -1
GPIO.add_event_detect(23, GPIO.FALLING, callback=extinction)
while True:
val = GPIO.input(INPUT_PIN)
if val == 0: # Button pressed
print("Button pressed")
if not video_started:
play_process = subprocess.Popen(['omxplayer','../resources/video.mov'],
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
close_fds=True)
if play_process != None:
video_started = play_process.poll() == None
else:
video_started = False
print("Video started : %s" % video_started)
time.sleep(0.2)
Hors ligne
Salut jeremixogg,
J'ai eu un problème similaire il y a peu de temps. Le problème est que pour que l'appuie sur "q" fonctionne, il faut que le focus soit sur omxplayer, ou sur le terminal qui a lancé la lecture.
Donc, un début de réponse : http://codelab.fr/5980 et le lien que le sujet contient.
Hors ligne
Un pote m'a parlé de cette librairie
https://github.com/willprice/python-omxplayer-wrapper
je crois que je vais tenter quelque chose par là
Hors ligne
Pages: 1