Domanda

Il flashplayer autonomo non accetta argomenti se non un file .swf quando lo si avvia dalla riga di comando. Ho bisogno che il giocatore passi a schermo intero, senza bordi delle finestre e così via. Questo può essere ottenuto premendo ctrl + f una volta avviato il programma. Voglio farlo a livello di programmazione poiché ne ho bisogno per avviarlo a schermo intero senza alcuna interazione umana.

La mia ipotesi è che ho bisogno di alcuni come ottenere un handle per la finestra e quindi inviargli un evento che assomiglia al " ctrl + f " battitura.

Se fa la differenza, sembra che il flashplayer sia un'applicazione GTK e ho Python con Pygtk installato.

AGGIORNAMENTO (la soluzione che ho usato ... grazie alla risposta di ypnos):

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

Soluzione

È possibile utilizzare un'applicazione dedicata che invia la sequenza di tasti al gestore della finestra, che dovrebbe quindi passare a Flash, se la finestra inizia come la finestra attiva sullo schermo. Questo è piuttosto soggetto a errori, tuttavia, a causa di ritardi tra l'avvio del flash e quando verrà visualizzata la finestra.

Ad esempio, il tuo script potrebbe fare qualcosa del genere: flashplayer * .swf sleep 3 & amp; & amp; xsendkey Control + F

L'applicazione xsendkey è disponibile qui: http: //people.csail .mit.edu / adonovan / hack / xsendkey.html Senza una specifica finestra, la invierà alla finestra principale, che viene gestita dal gestore delle finestre. Potresti anche provare a capire prima l'id di Windows, usando xprop o qualcosa ad esso correlato.

Un'altra opzione è un gestore di finestre, che è in grado di ricordare le impostazioni e applicarle automaticamente. Fluxbo, ad esempio, offre questa funzione. Puoi impostare fluxbox per rendere la finestra senza decorazioni e allungarla su tutto lo schermo, se Flashplayer supporta il ridimensionamento. Anche questo non è così bello, poiché probabilmente influenzerebbe tutte le finestre di Flashplayer che apri mai.

Altri suggerimenti

L'ho fatto molto tempo fa, ma non era meschino. Quello che abbiamo fatto è stato utilizzare Window manager Sawfish e ho scritto un hook per riconoscere la finestra di Flashplayer, quindi rimuovere tutte le decorazioni e scattare a schermo intero.

Questo potrebbe essere possibile senza usare il gestore delle finestre, registrandosi per gli eventi di creazione di X window da un'applicazione esterna, ma non ho abbastanza familiarità con X11 per dirti come sarebbe fatto.

Un'altra opzione sarebbe quella di scrivere un'applicazione pygtk che incorporasse il flash player standalone all'interno di un gtk.Socket e poi si ridimensionasse. Dopo un po 'di riflessione, questa potrebbe essere la soluzione migliore.

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

che proviene dal [ http://gwenole.beauchesne.info/ / it / projects / nspluginwrapper] (progetto nspluginwrapper )

  

Un'altra opzione sarebbe quella di scrivere un'applicazione pygtk che incorporasse il flash player standalone all'interno di un gtk.Socket e poi si ridimensionasse. Dopo un po 'di riflessione, questa potrebbe essere la soluzione migliore.

Questo è esattamente quello che ho fatto. Inoltre, il mio lettore ridimensiona i contenuti flash tramite Xcomposite, Xfixes e Cairo. Un .deb incluso il sorgente python è disponibile qui: http://www.crutzi.info/crutziplayer

L'ho fatto usando openbox usando un meccanismo simile a quello che menziona bmdhack. La cosa che ho notato da questo è che il flash player autonomo ha ottenuto risultati a schermo intero notevolmente peggiori rispetto allo stesso lettore in una finestra non decorata ingrandita. (che, fastidiosamente, non è correttamente a schermo intero a causa della barra dei menu). Mi chiedevo di eseguirlo con un tema GTK personalizzato per rendere invisibile il menu. Questo è solo un problema di prestazioni. Se lo schermo intero attualmente funziona bene, è inutilmente complicato. Stavo correndo su un XPC OLPC, le prestazioni sono più un problema lì.

Non ho avuto molta fortuna con nspluginplayer (penso che sia troppo pieno di bug).

Alla fine ho avuto il lusso di creare il flash in esecuzione in modo da poter semplicemente inserire il codice nel flash stesso. In modo analogo, poiché puoi incorporare il flash all'interno del flash, dovrebbe essere possibile creare un piccolo stub swf che passa automaticamente a schermo intero e contiene lo sfw di destinazione.

Devi usare Acton script 3 cmd:

stage.displayState = StageDisplayState.FULL_SCREEN;

Consulta la programmazione di Adobe Action script 3.

Ma fai attenzione: a schermo intero, perderai le prestazioni di visualizzazione!

Ho questo problema ... più sotto Linux !!!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top