Bonjour à tous vu que je suis tout nouveau sur ce forum !

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 :
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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)