IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Raspberry Pi Discussion :

Quitter OMXPlayer en cliquant dessus


Sujet :

Raspberry Pi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 201
    Points : 150
    Points
    150
    Par défaut Quitter OMXPlayer en cliquant dessus
    Bonjour,

    Je cherche une solution afin de pouvoir sortir d'une vidéo lue par OMXPLAYER en cliquant sur l'image.

    Mon problème est que la video est lu depuis un ecran tactile mono-point SANS CLAVIER NI SOURIS.

    Aussi lorsque la personne touche une video, elle est lue par omxplayer, mais il n'y a alors plus de possibilite de sortir de la vidéo.

    Mon idée est donc de dire que le fait de toucher le player le quitte. Je pensais à changer le focus juste apres le lancement de la video et quitter la video lorsqu'elle reprend le focus. Mais j'avoue ne pas savoir si cela est envisageable...

    Alors je cherche des infos et des idées.

    Bien à vous

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Novembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Novembre 2015
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Salut Tepaze !
    Ça faisait un bail, mais c'est cool de voir que tu persévères sur Linux, et en particulier avec ce cher Raspberry
    Pour ce que tu veux faire, tu n'expliques pas trop le contexte (questions subsidiaires : les vidéos qu'on touche, c'est dans quel programme ? quand on quitte omxplayer, c'est pour "retomber" sur quoi ? est-ce que ça se passe dans Xorg ou bien dans la console, sans interface graphique ?).

    Mais en raison de problèmes d'insomnie je te propose une solution "clé en main" qui pourrait convenir quand omxplayer est lancé depuis une fenêtre de Terminal : faire en sorte qu'un clic de souris déclenche la lettre "q" qui sert à quitter omxplayer (sachant qu'un "toucher" sur l'écran tactile devrait pouvoir être reconnu comme un clic).

    Il existe plein d'utilitaires qui permettent de manipuler Xorg (l'interface graphique de Linux, avec les menus, fenêtres, clavier, souris, tout ça). Une petite recherche m'a mené sur une page de l'excellent forum AskUbuntu avec une discussion sur comment simuler des touches quand on appuye sur des boutons de souris : http://askubuntu.com/questions/6134/...ttons-of-mouse

    L'usage conjoint de deux commandes est préconisé : xbindkeys sert à déclencher une commande selon un événement d'entrée utilisateur (clavier ou souris) et xdotool qui permet à l'inverse de simuler un événement d'entrée utilisateur On peut les installer comme ceci sur Debian et compagnie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sudo apt-get update && sudo apt-get install xbindkeys xdotool
    Il faut commencer par créer un fichier de configuration, par exemple xbind.conf (avec vi ou nano) qui contienne ceci (sans ces numéros de ligne que je ne peux pas désactiver ici...) :
    b:1 correspond (généralement) au bouton gauche de la souris, c'est l'événement déclencheur (on peut aussi utiliser la commande xbindkeys -k pour identifier le numéro d'un autre bouton).
    Le "xdotool key q" qui précède est la commande associée (placée entre guillemets). Et l'ensemble des deux lignes correspond à : "le bouton gauche déclenche la lettre q".

    Ensuite, il reste à tester ce système en faisant xbindkeys -n -f xbind.conf (l'option -f sert à spécifier le fichier de configuration, et -n à empêcher que la commande soit lancée en "tâche de fond", pour pouvoir l'arrêter plus facilement à l'aide de la combinaison de touches Control + C).

    Voici enfin un petit script qu'on peut nommer omxplayer_xbind.sh qui pourra se substituer à "omxplayer" mais qui activera temporairement xbindkeys (si d'abord on a bien créé dans le même dossier le fichier xbind.conf comme indiqué plus haut) :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #!/bin/bash
    xbindkeys -f xbind.conf & omxplayer "$@" && killall xbindkeys
    Explication de la ligne de commande de ce script:
    - xbindkeys -f xbind.conf & : active xbindkeys en tâche de fond et passe immédiatement à la commande suivante.
    - omxplayer "$@" : lance omxplayer en lui passant tous les arguments donnés au script (nom du fichier vidéo et options).
    - && killall xbindkeys : quand omxplayer se termine (parce qu'on a cliqué, ou qu'on est arrivé au bout de la vidéo), on supprime (grossièrement...) le processus xbindkeys en cours.

    Pour terminer, après avoir donné les droits d’exécution au script (avec un chmod +x omxplayer_xbind.sh), on peut enfin s'en servir pour lancer une vidéo, par exemple "mavideo.mov" , comme ceci :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    ./omxplayer_xbind.sh mavideo.mov
    ... et la quitter avec un clic ! Mieux vaut également éviter d'ouvrir d'autre fenêtres susceptibles de "piquer le q" à notre terminal... ok je vais me coucher... Tiens moi au courant, a+

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 201
    Points : 150
    Points
    150
    Par défaut
    Salut Nicolas Lhommet,

    C'est cool de te lire aussi. Et pour info, je suis tout acquis à Linux, mais je dois encore faire des entorses pour cause de travail d'équipe... Mais chez moi, les 3 ordinateurs sont sous Linux depuis bientôt 3 ans (avec une migration petit à petit). Donc oui, je persevère :-)

    Concernant mon problème, tout d'abord merci pour ta solution. J'ai passé la journée à essayer de la mettre en place, avec plus ou moins de réussite. J'ai eu pas mal de problème avec qui pour fonctionner semble devoir adopter la syntaxe suivante C'est pas grand chose, mais cela m'a pris pas mal de temps pour trouver... En fait il a fallut que je comprenne :-)

    Sinon, ça ne suffit pas, car il semble que omxplayer perde le focus lors de son lancement par ce biais, et donc le commande ne s'adresse pas à lui. Mais j'ai vu que l'on pouvait faire le focus sur une fenetre pour lui appliquer la combinaison de touche, alors je continue de chercher.

    Enfin, la video devra être lancé par le clic (le touché de l'utilisateur sur l'ecran) sur l'icone de la video dans un dossier. Je pense donc relier les fichier video à cette application créé, mais je n'ai pas encore cherché comment... Mais ca ne m'inquiète pas.

    Et encore merci pour cette piste fort interessante.

    Bien à toi

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Novembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Novembre 2015
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bizarre.... les manips que j'ai mises, c'est EXACTEMENT ce que j'ai fait hier soir pour y arriver (que des copiés/collés, pour le script et le fichier de conf', j'ai même vérifié et re-vérifié, et contrairement à certains, sauf quand mentionné au conditionnel, je ne propose QUE des solutions que j'ai préalablement testé) sur la dernière Raspbian quasi neuve sur Raspberry Pi 2, et ça marche au poil !

    Quand je suis sur l’interface graphique, j'ouvre un terminal, je lance le script avec une vidéo, et même si je déplace la souris et que je clique n'importe où (même sur la barre des menus) la lettre "q" est bien envoyée dans la fenêtre de terminal et la vidéo quitte immédiatement. En fait, l'interface graphique et le curseur continuent à fonctionner normalement derrière la vidéo.

    J'insiste d'ailleurs sur le fait que la vidéo est affichée par dessus Xorg, dans le FrameBuffer, où il n'existe aucune notion de focus. Pour se faire une idée, je t'invite à lancer la vidéo avec le script en ajoutant l'option "--orientation 90" juste avant le nom du fichier vidéo : comme la vidéo ne recouvre pas tout l'écran, on peut voir ce qui se passe concrètement en même temps dans l'interface graphique.

    Ca fonctionne même quand la fenêtre perd le focus au profit du bureau.... du moment, je le répète, que je ne clique pas dans une autre fenêtre avec un autre bouton ou des touches (du genre Alt-Tab, donc choses impossibles avec ton écran tactile) auquel cas, cette autre fenêtre peut prendre le focus et récupérer la lettre "q" exclusivement, d'où cette précision à la fin de mon message.

    Je n'ai pas eu non plus besoin de rajouter des guillemets simples autour de la lettre q comme tu expliques que tu as du finalement été obligé de faire pour ton fichier de configuration de xbindkeys... En même temps, chez moi, la commande ne supportait pas toutes les options de sa page de "man", alors je suspecte que la version fournie sur Raspbian est un peu moisie, et probablement davantage sur une version plus ancienne...

    Donc mon conseil, si ça se passe différemment pour toi : essayer de refaire les manips sur une Raspbian dernier cri

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 201
    Points : 150
    Points
    150
    Par défaut
    Alors, 2 choses :
    - J'ai la dernière version de Raspian fournit par l'installeur NOOBS
    - Toutes les commandes sont effectuer en ssh...

    Et c'est peut être ce dernier point qui pose soucis. La lettre q est bien envoyé, mais par exemple, à un moment j'avais leafpad d'ouvert, et la lettre s'inscrivait dans celui-ci.

    A terme, le lancement ce fera en local, mais pour mes tests, j'ai du faire ainsi.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Novembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Novembre 2015
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par tepaze Voir le message
    Alors, 2 choses :- J'ai la dernière version de Raspian fournit par l'installeur NOOBS
    Bon, bah je vois pas pourquoi tu dois rajouter des guillemets simples pour ta commande xdotool, et pas moi... Je l'ai simplement installé comme j'ai indiqué, via un simple "apt-get install xdotool". Essaye toujours un "xdotool --version" pour voir, moi ça me donne la version 3.20141017.1

    - Toutes les commandes sont effectuer en ssh...
    Et c'est peut être ce dernier point qui pose soucis. La lettre q est bien envoyé, mais par exemple, à un moment j'avais leafpad d'ouvert, et la lettre s'inscrivait dans celui-ci.
    Ah bah mieux vaut tard que jamais ! (étonnamment, j'avais commencé par dire qu'on aurait bien voulu savoir dans quel "contexte" la video était lancée, juste au cas où ça changerait Tout... au moins, comme tu parles de Leafpad, on apprend Enfin que tu es bien sur Xorg...).

    En effet, je n'ai parlé que d'un terminal lancé DIRECTEMENT depuis l'interface graphique, et mon dernier message ne laissait aucun doute à ce sujet : c'est justement la fenêtre du terminal (celle qui sert à lancer omxplayer) qui récupère les événements clavier ou souris.

    Mais en cas de SSH, forcément, il n'y a pas de fenêtre de terminal, donc Xorg peut renvoyer ces événements partout... sauf dans une fenêtre qui n'existe pas !!
    Bon, en même temps, au final tes "spectateurs" ne lanceront pas non plus de fenêtre de terminal eux-même, et pourtant ma solution en nécessite une, vu que c'est elle qui communique les raccourcis claviers à omxplayer.

    Bon, j'arrête les points de suspension, et voici la solution pour ces cas de figure (note: il ne s'agit pas d'une piste ) :

    • Déjà, pour lancer une fenêtre sur l'interface graphique via le SSH, c'est un classique, il faut faire du "déport d'affichage", pour indiquer qu'on veut afficher nos applications sur l'écran principal en tapant préalablement cette commande, (avant de lancer des applications qui ouvrent leur propre fenêtre, comme le Terminal, ou autre) :
    • Ensuite, on peut enfin lancer un terminal via le ssh juste en tapant "lxterminal", il devrait maintenant s'afficher sur l'écran branché au Raspberry Pi.

      Mais comment faire pour lancer un terminal qui exécute directement notre script ?? Une petite recherche m'a menée sur une page de l'excellent forum AskUbuntu avec une discussion sur comment exécuter une commande directement dans une nouvelle fenêtre de terminal : http://askubuntu.com/questions/48499...erminal-window . Et en suivant la solution préconisée, voici la commande qui va bien :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      lxterminal -e "bash -c \"./omxplayer_xbind.sh MAVIDEO.MOV\""
      ...évidemment, à condition :
      - d'avoir préalablement fait les opération précédentes (création du xbind.conf et du script omxplayer_xbind.sh)
      - que le fichier vidéo s'appelle "MAVIDEO.MOV" et que le script s'appelle "omxplayer_xbind.sh" (sinon modifier les noms)
      - de lancer cette commande dans le dossier qui contient le script ET la vidéo (sinon préciser leur chemins d'accès absolu)
      - et bien sûr, qu'AUCUNE autre fenêtre, susceptible de voler le focus clavier, ne soit déjà ouverte (3ème édition, désolé).
      La aussi, j'ai testé, et ça fonctionne correctement, le clic ferme bien omxplayer.

    • De plus, avec la dernière solution, la fenêtre de terminal disparait immédiatement après la "termination" d'omxplayer. Par contre, sa présence sur l'écran, et sa visibilité quelques secondes avant le lancement de la vidéo, et aussi un peu après, n'est pas visuellement des plus esthétique . Pour qu'elle n'apparaisse pas, il faudrait la "cacher", par exemple en la déplaçant en dehors de l'écran (attention à pas se la prendre dans la figure ).

      Pour ça, les applications pour Xorg écrites dans les règles de l'art implémentent l'option "-geometry" qui permet à l'utilisateur de spécifier au serveur graphique le dimensionnement et le positionnement souhaités pour la fenêtre. Malheuresement lxterminal ne la gère pas...

      Mais heureusement, sur GNU/Linux, les émulateurs de terminaux, c'est pas ça qui manque ! Et on peut utiliser ce bon vieux xterm à la place (à installer avec apt-get), et se servir de l'option "-geometry" pour rendre la fenêtre minuscule (dimensions = 0 x 0, ça laisse que les bordures) et la placer en dehors des limites d'affichage de l'écran (coordonnée x du coin supérieur gauche = 2000) :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      xterm -geometry 0x0+2000 -e "bash -c \"./omxplayer_xbind.sh MAVIDEO.MOV\""
      Là ça marche au poil (enfin, chez moi en tout cas) et en plus, c'est clean ! Sinon, je peux aussi passer sur Angers... si tu m'invites à boire un coup

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 201
    Points : 150
    Points
    150
    Par défaut
    Sinon, je peux aussi passer sur Angers... si tu m'invites à boire un coup
    Tu es le bienvenue ! Et on boira des coups !
    Et je vais m'en sortir, j'en suis sur :-)

    Malheureusement je n'ai pas le temps de mettre en application ta méthode avant quelques jours (semaines ?) pour cause de priorité...

    En tout cas, merci, et à bientôt alors :-)

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Collégien
    Inscrit en
    Novembre 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Novembre 2015
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Y'a pas de raison que ça fonctionne pas, mais merci pour l'invitation , j'attendrai que tu sois moins occupé, stp tiens moi au courant des résultats, parce que l'idée, c'est quand même que ça marche pour toi et pas seulement chez moi (ou alors faut que les gens viennent chez moi toucher tes vidéos ) a+

Discussions similaires

  1. Lancer un programme par la console ou en cliquant dessus ?
    Par NeMo_O dans le forum Applications et environnements graphiques
    Réponses: 8
    Dernier message: 26/05/2008, 23h43
  2. Selectionner une image en cliquant dessus
    Par thesam73 dans le forum Interfaces Graphiques
    Réponses: 4
    Dernier message: 04/03/2008, 13h56
  3. Réponses: 4
    Dernier message: 04/12/2007, 11h26
  4. Réponses: 8
    Dernier message: 13/04/2006, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo