Page 2 sur 2

Re: Télécommande PHP OMX Player

Posté : lun. 18 déc. 2017 14:03
par Xorax
Bonne nouvelle ! J'ai trouvé une autre solution qui fonctionne plutôt bien.

En cherchant un peu, je suis tombé sur ce lien.
A la différence de ce que l'on testait, c'est qu'il utilise un programme python et une bibliothèque "subprocess" pour gérer les commandes linux.
Avec cette ligne "stdin=subprocess.PIPE", le stdin de la commande sera directement relié au pipe.

En paramètre de mon programme j'envoi donc le chemin de ma vidéo, ma vidéo se lance puis arrive une boucle infinie.
Dans la boucle infinie je vais vérifier et ce que contient le fichier "Telec" toutes les 1sec puis écrire "." dedans.
En fonction de ce qu'il y a écrit dans mon fichier "Telec" je déclenche la méthode "play_process.stdin.write([commandeOMX])".
J'écris dans mon fichier "Telec" avec des commandes PHP en fonction des boutons appuyé sur ma page.

Par exemple si j'appui sur le bouton pause de ma page PHP :
- On écrit "p" dans le fichier "telec"
- Le programme python va détecter "p" dans le fichier Telec"
- La méthode suivante est déclenchée : play_process.stdin.write(p)
- Ma vidéo se met en pause
- Le programme python écrit "." dans le fichier telec (pour éviter les play/pause en boucle a chaque passage dans ma boucle While).

Le programme python ne se termine donc pas tant que la lettre "q" n'est pas détectée (q correspond à quitter OMX).

Avec cette méthode, je rencontrai alors un autre problème.
Dans ma page PHP, quand j’exécutais mon script avec la commande : exec('sudo /cheminscript/programme.py'). La page PHP attendais la fin de l’exécution du programme python pour exécutée le reste de la page, et vu que mon programme python est une boucle infinie je pouvais attendre longtemps :lol: .
J'ai donc simplement changé la commande a exécutée en PHP par : exec('sudo /cheminscript/programme.py > /dev/null 2>&1 &'). Et magie, ça fonctionne !

L'utilisation d'un programme comme cela a peut être des inconvénients (que je ne connais pas pour l'instant :D) mais tout fonctionne correctement pour le moment.
Etant au travail, je ne peux malheureusement pas ajouter des screens de mes programmes, je les ajouterai ce soir :D.

Re: Télécommande PHP OMX Player

Posté : mar. 19 déc. 2017 15:36
par Barbedouce
Bien joué !
C'est en effet la question que nous nous posions pour la ligne avec double chevron < et >, si ce qu'il y avait entre étais une boucle infinie...
Il y aurai eu moyen de faire cette boucle en bash avec :

Code : Tout sélectionner

#!/bin/bash
 
while true;do
  #cmd
done
Mis a part cela, si tout marche, rien est a réparer !
On attends tes photos. :P

Re: Télécommande PHP OMX Player

Posté : mar. 24 avr. 2018 17:07
par ddudekk