Question

flashplayer autonome ne prend aucun autre argument qu'un fichier .swf lorsque vous le lancez à partir de la ligne de commande. J'ai besoin du lecteur pour aller en plein écran, pas de bordures de fenêtre et autres. Cela peut être accompli en appuyant sur ctrl + f une fois le programme démarré. Je veux le faire par programmation car j'en ai besoin pour passer en plein écran sans aucune interaction humaine.

Je suppose que je dois savoir comment obtenir un handle vers la fenêtre, puis lui envoyer un événement qui ressemble à "Ctrl + f". la frappe.

Si cela fait une différence, il semble que flashplayer est une application gtk et que python est installé avec pygtk.

UPDATE (la solution que j'ai utilisée ... grâce à la réponse de ypnos):

./flashplayer http://example.com/example.swf & sleep 3 && ~/xsendkey -window "Adobe Flash Player 10" Control+F
Était-ce utile?

La solution

Vous pouvez utiliser une application dédiée qui envoie la frappe au gestionnaire de fenêtres, qui doit ensuite la faire clignoter, si la fenêtre commence comme étant la fenêtre active à l'écran. C’est cependant une source d’erreurs, due aux délais entre le démarrage du flash et le moment où la fenêtre s’affiche.

Par exemple, votre script pourrait faire quelque chose comme ceci: flashplayer * .swf dormir 3 & amp; & amp; xsendkey Control + F

L'application xsendkey peut être trouvée ici: http: //people.csail .mit.edu / adonovan / hacks / xsendkey.html Sans donner une fenêtre spécifique, il l'enverra à la fenêtre racine, qui est gérée par votre gestionnaire de fenêtres. Vous pouvez également essayer d’abord d’identifier l’identifiant Window en utilisant xprop ou quelque chose qui lui est lié.

Une autre option est un gestionnaire de fenêtres, capable de mémoriser vos paramètres et de les appliquer automatiquement. Fluxbos par exemple fournit cette fonctionnalité. Vous pouvez définir Fluxbox pour rendre la fenêtre sans décor et l'étendre sur tout l'écran, si Flashplayer prend en charge le redimensionnement. Ce n’est pas très agréable non plus, car cela affecterait probablement toutes les fenêtres de Flashplayer que vous ouvrez.

Autres conseils

Je l’ai fait il ya longtemps, mais ce n’était pas maigre. Ce que nous avons fait est d’utiliser le gestionnaire de fenêtre Sawfish et a créé un point d'ancrage pour reconnaître la fenêtre flashplayer, puis enlève toutes les décorations et claque-le en plein écran.

Cela peut être possible sans utiliser le gestionnaire de fenêtres, en vous inscrivant à des événements de création de fenêtres X à partir d'une application externe, mais je ne connais pas suffisamment X11 pour vous expliquer comment procéder.

Une autre option consisterait à écrire une application pygtk intégrant le lecteur flash autonome dans un fichier gtk.Socket, puis se redimensionnant elle-même. Après un peu de réflexion, cela pourrait être votre meilleur pari.

nspluginplayer --fullscreen src=path/to/flashfile.swf

qui provient de la page [ http://gwenole.beauchesne.info/ / fr / projets / nspluginwrapper] (projet nspluginwrapper )

  

Une autre option consisterait à écrire une application pygtk intégrant le lecteur flash autonome dans un fichier gtk.Socket, puis se redimensionnant elle-même. Après un peu de réflexion, cela pourrait être votre meilleur pari.

C’est exactement ce que j’ai fait. De plus, mon lecteur adapte le contenu Flash via Xcomposite, Xfixes et Cairo. Un fichier .deb incluant une source python se trouve ici: http://www.crutzi.info/crutziplayer

Je l'ai fait en utilisant openbox en utilisant un mécanisme similaire à celui mentionné par bmdhacks. Ce que j’ai remarqué, c’est que le lecteur flash autonome affichait une performance plein écran bien pire que celle du même lecteur dans une fenêtre non décorée agrandie. (cela, ennuyeusement, n’est pas correctement plein écran à cause de la barre de menu). Je m'interrogeais sur le fait de l'exécuter avec un thème gtk personnalisé pour rendre le menu invisible. C'est juste un problème de performance cependant. Si le mode plein écran fonctionne correctement, c'est compliqué. Je courais sur un OLPC XO, les performances sont plus un problème ici.

Je n’ai pas eu beaucoup de chance avec nspluginplayer (trop bogué, je pense).

En fin de compte, j’ai eu le luxe de créer le flash en marche afin de pouvoir simplement insérer du code dans le flash lui-même. Par un jeton similaire, étant donné que vous pouvez intégrer le flash dans le flash, il devrait être possible de créer un petit fichier swf qui passe automatiquement en plein écran et contient le fichier cible.

Vous devez utiliser le script Acton 3 cmd:

stage.displayState = StageDisplayState.FULL_SCREEN;

Voir la programmation Adobe Action Script 3.

Mais soyez prudent: en plein écran, vous perdrez des performances d'affichage!

J'ai ce problème ... plus sous Linux !!!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top