Python+omxplayer  [RESOLU]

Vous venez de déballer votre Raspberry Pi et vous vous posez des questions ? C'est ici que ça se passe !

Modérateurs : Francois, EVOTk

Répondre
MyParax
Messages : 10
Enregistré le : sam. 12 nov. 2016 23:27

Python+omxplayer

Message par MyParax » ven. 3 févr. 2017 09:06

Bonjour ! Je dois faire un projet qui consiste, lorsque l'on appuie sur un bouton : un son sort d'une enceinte(Quel originalité).
Voici le code : (Volé sur internet)

Code : Tout sélectionner

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)
 
video_started = False
play_process = None
val = -1
 
while True:
    val = GPIO.input(INPUT_PIN)
    if val == 0: # Button pressed
        print("Button pressed")
        if not video_started:
            play_process = subprocess.Popen(['omxplayer','audio.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)
    
_____________________________________
Sauf que celui çi sort sur l'hdmi ... Et pas sur les enceintes, j'aimerai qu'il sorte en local comme dans la console (omxplayer -o local).
Merci d'avance !!!

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Python+omxplayer

Message par Manfraid » ven. 3 févr. 2017 09:20

Salut,

essaye comme ceci, de mémoire ça doit fonctionner, mais comme j'utilise que très rarement le module subprocess j'ai un petit doute quand même

sinon regarde juste sur la doc pour ajouter un paramètre a la commande ouverte par

Code : Tout sélectionner

subprocess.Popen

Code : Tout sélectionner

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)
 
video_started = False
play_process = None
val = -1
 
while True:
    val = GPIO.input(INPUT_PIN)
    if val == 0: # Button pressed
        print("Button pressed")
        if not video_started:
            play_process = subprocess.Popen(['omxplayer','-o local','audio.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)
    
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

MyParax
Messages : 10
Enregistré le : sam. 12 nov. 2016 23:27

Re: Python+omxplayer  [RESOLU]

Message par MyParax » ven. 3 févr. 2017 09:31

Merci pour la réponse(trés rapide) , mais j'ai déjà essayé ça.
Ca ne marche pas :?
Je vais regarder la doc comme tu l'as conseillé !
Merci !

MyParax
Messages : 10
Enregistré le : sam. 12 nov. 2016 23:27

Re: Python+omxplayer

Message par MyParax » ven. 3 févr. 2017 10:14

J'ai pas du tout trouvé (ou mal cherché) il n"y a pas moyen juste de passer par LxTerminal ?

MyParax
Messages : 10
Enregistré le : sam. 12 nov. 2016 23:27

Re: Python+omxplayer

Message par MyParax » ven. 3 févr. 2017 11:14

J'ai finnalement trouvé la solution ... Et j'adore Python...

Code : Tout sélectionner

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)
 
video_started = False
play_process = None
val = -1
 
while True:
    val = GPIO.input(INPUT_PIN)
    if val == 0: # Button pressed
        print("Button pressed")
        if not video_started:
            play_process = subprocess.Popen(['omxplayer','-o', 'local','audio.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)
   
Il fallait juste séparer le -o et le local.
Merci quand même pour ton aide ! :)

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Python+omxplayer

Message par Manfraid » ven. 3 févr. 2017 11:36

oui python et plutôt pratique je trouve

et oui m'en doutais qu'il y avais une astuce comme ça pour cette fonction
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

Répondre

Retourner vers « Débutants »