Télécommande PHP OMX Player

Photographie ultra-rapide, pilotage d'imprimante 3D ou de CNC, fabrication de bière.... Enfin tout ce que le Raspberry peut gérer trouvera sa place dans cette rubrique

Modérateur : Francois

Xorax
Messages : 9
Enregistré le : dim. 12 nov. 2017 18:42

Re: Télécommande PHP OMX Player

Message par Xorax » lun. 18 déc. 2017 14:03

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.

Barbedouce
Messages : 58
Enregistré le : sam. 25 nov. 2017 20:40

Re: Télécommande PHP OMX Player

Message par Barbedouce » mar. 19 déc. 2017 15:36

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

ddudekk
Messages : 1
Enregistré le : mar. 24 avr. 2018 17:01

Re: Télécommande PHP OMX Player

Message par ddudekk » mar. 24 avr. 2018 17:07


Répondre

Retourner vers « Les applications spécialisées du Raspberry Pi »