Pregunta

El flashplayer independiente no tiene más argumentos que un archivo .swf cuando lo ejecutas desde la línea de comandos. Necesito que el jugador vaya a pantalla completa, sin bordes de ventanas y tal. Esto se puede lograr presionando ctrl + f una vez que el programa ha comenzado. Quiero hacer esto programáticamente ya que lo necesito para lanzarlo en pantalla completa sin ninguna interacción humana.

Supongo que necesito algunos elementos para obtener un identificador de la ventana y luego enviar un evento que se vea como " ctrl + f " pulsación de tecla

Si hay alguna diferencia, parece que flashplayer es una aplicación gtk y tengo python con pygtk instalado.

ACTUALIZACIÓN (la solución que usé ... gracias a la respuesta de ypnos):

./flashplayer http://example.com/example.swf & sleep 3 && ~/xsendkey -window "Adobe Flash Player 10" Control+F
¿Fue útil?

Solución

Puede usar una aplicación dedicada que envía la pulsación al administrador de ventanas, que luego debería pasar a flash, si la ventana comienza como la ventana activa en la pantalla. Sin embargo, esto es bastante propenso a errores, debido a los retrasos entre el inicio del flash y cuando se mostrará la ventana.

Por ejemplo, tu script podría hacer algo como esto: flashplayer * .swf dormir 3 & amp; & amp; xsendkey Control + F

La aplicación xsendkey se puede encontrar aquí: http: //people.csail .mit.edu / adonovan / hacks / xsendkey.html Sin una ventana específica, la enviará a la ventana raíz, que maneja su administrador de ventanas. También puedes intentar averiguar primero la ID de la ventana, utilizando xprop o algo relacionado con ella.

Otra opción es un administrador de ventanas, que puede recordar sus configuraciones y aplicarlas automáticamente. Fluxbos, por ejemplo, proporciona esta característica. Puede configurar fluxbox para que la ventana no tenga decoración y extenderla por toda la pantalla, si Flashplayer admite el cambio de tamaño. Esto tampoco es tan bueno, ya que probablemente afectaría a todas las ventanas de Flash Player que abres siempre.

Otros consejos

En realidad lo hice hace mucho tiempo, pero no fue mezquino. Lo que hicimos fue usar el administrador de ventanas de Sawfish y escribí un gancho para reconocer la ventana del reproductor de flash, luego tira todas las decoraciones y colócala a pantalla completa.

Esto puede ser posible sin usar el administrador de ventanas, al registrarse para eventos de creación de ventanas X desde una aplicación externa, pero no estoy lo suficientemente familiarizado con X11 para decirle cómo se haría eso.

Otra opción sería escribir una aplicación pygtk que incrustara el reproductor de flash independiente dentro de un gtk.Socket y luego se redimensionara. Después de pensar un poco, esta podría ser tu mejor apuesta.

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

que es del [ http://gwenole.beauchesne.info/ / en / projects / nspluginwrapper] (nspluginwrapper project)

  

Otra opción sería escribir una aplicación pygtk que incrustara el reproductor de flash independiente dentro de un gtk.Socket y luego se redimensionara. Después de pensar un poco, esta podría ser tu mejor apuesta.

Esto es exactamente lo que hice. Además de eso, mi reproductor escala el contenido flash a través de Xcomposite, Xfixes y Cairo. Un .deb incluyendo la fuente de python se encuentra aquí: http://www.crutzi.info/crutziplayer

He hecho esto usando openbox usando un mecanismo similar al que menciona bmdhacks. Lo que sí noté de esto fue que el reproductor de flash independiente realizó una pantalla completa considerablemente peor que la del mismo jugador en una ventana maximizada sin decoración. (que, de manera molesta, no está correctamente en pantalla completa debido a la barra de menú) Me preguntaba sobre cómo ejecutarlo con un tema gtk personalizado para hacer invisible el menú. Eso es sólo un problema de rendimiento sin embargo. Si la pantalla completa actualmente funciona bien, entonces es innecesariamente complicado. Estaba ejecutando un OLPC XO, el rendimiento es más que un problema allí.

No tuve mucha suerte con nspluginplayer (creo que demasiado buggy).

Finalmente, tuve el lujo de hacer el flash que se estaba ejecutando, así que simplemente pude colocar el código en el mismo flash. Por un token similar, ya que puedes incrustar flash en flash, debería ser posible hacer un pequeño swf de código auxiliar que se muestre en pantalla completa automáticamente y contenga el contenido del dispositivo.

Tienes que usar Acton script 3 cmd:

stage.displayState = StageDisplayState.FULL_SCREEN;

Consulte la programación de Adobe Action script 3.

Pero tenga cuidado: en pantalla completa, ¡perderá las presentaciones!

Tengo este problema ... ¡más bajo Linux!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top