Pergunta

O flashplayer autônomo leva nenhum outro do que um arquivo SWF quando você lançá-lo na linha de comando argumentos. Eu preciso o jogador ir em tela cheia, sem bordas das janelas e tal. Isso pode ser feito por bater ctrl + f uma vez que o programa foi iniciado. Eu quero fazer isso programaticamente como eu preciso dele para lançamento em tela cheia sem qualquer interação humana.

Meu palpite é que eu preciso de alguma forma obter um identificador para a janela e, em seguida, enviá-lo um evento que se parece com o "ctrl + f" keystroke.

Se faz alguma diferença, parece que flashplayer é uma aplicação gtk e eu tenho python com pygtk instalado.

Atualizar (a solução que eu usei ... graças à resposta ypnos):

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

Solução

Você pode usar um aplicativo dedicado que envia a combinação de teclas para o gerenciador de janelas, que deve passá-lo a piscar, se a janela começa como sendo a janela ativa na tela. Isto é bastante propenso a erros, no entanto, devido a atrasos entre começando flash e quando a janela vai aparecer.

Por exemplo, o script poderia fazer algo parecido com isto: flashplayer * .swf sono 3 && xsendkey Controlo + F

O xsendkey aplicação pode ser encontrada aqui: http: //people.csail .mit.edu / adonovan / cortes / xsendkey.html Sem dada uma janela específica, ele vai enviá-lo para a janela de raiz, que é tratado pelo seu gerenciador de janelas. Você também pode tentar descobrir o id Janela primeiro, usando xprop ou algo relacionado a ele.

Outra opção é um gerenciador de janelas, que é capaz de se lembrar de suas configurações e aplicá-las automaticamente. Fluxbos por exemplo fornece esse recurso. Você pode definir fluxbox para tornar a janela decoração de menos e esticá-la sobre toda a tela, se suportes FlashPlayer sendo redimensionada. Isto também não é tão agradável, como provavelmente afetaria todas as janelas FlashPlayer você abrir nunca.

Outras dicas

Eu realmente feito isso há muito tempo, mas não foi mesquinho. O que fizemos foi usar o Sawfish gerenciador de janelas e escreveu um gancho de reconhecer a janela do flashplayer, em seguida, tira todas as decorações e encaixá-lo em tela cheia.

Isso pode ser possível sem usar o gerenciador de janelas, registrando-se para eventos de criação de janelas X de um aplicativo externo, mas eu não sou o suficiente familiarizado com X11 para lhe dizer como isso seria feito.

Outra opção seria escrever um aplicativo pygtk que incorporado o flash player autônomo dentro de um gtk.Socket e depois redimensionado em si. Após um pouco de pensamento, esta pode ser sua melhor aposta.

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

que é a partir do [ http://gwenole.beauchesne.info/ / en / projetos / nspluginwrapper] (nspluginwrapper projeto)

Outra opção seria escrever um aplicativo pygtk que incorporado o flash player autônomo dentro de um gtk.Socket e depois redimensionado em si. Após um pouco de pensamento, esta pode ser sua melhor aposta.

Este é exatamente o que eu fiz. Além disso, meus escalas flash player de conteúdo via Xcomposite, Xfixes e Cairo. A .deb incluindo fonte python ser encontrada aqui: http://www.crutzi.info/crutziplayer

Eu fiz isso usando openbox usando um mecanismo semelhante ao que bmdhacks menciona. A única coisa que eu fiz nota foi que o flash player standalone realizada consideravelmente pior fullscreen do que o mesmo jogador em uma janela undecorated maximizada. (Que, irritantemente não é adequadamente tela cheia por causa da barra de menu). Eu estava pensando sobre executá-lo com um tema GTK personalizado para fazer o menu invisível. Isso é apenas um problema de desempenho embora. Se fullscreen atualmente funciona ok, então é unneccisarily complicado. Eu estava correndo em um OLPC XO, o desempenho é mais um problema lá.

Eu não tive muita sorte com nspluginplayer (muitos bugs eu acho).

Em última análise, eu tive o luxo de fazer o flash que estava sendo executado para que eu pudesse simplesmente colocar o código no próprio Flash. Por um símbolo semelhante, já que você pode inserir flash dentro de flash, deve ser possível fazer um pouco de swf stub que vai fullscreen automaticamente e contém o sfw alvo.

Você tem que usar Acton Script 3 cmd:

stage.displayState = StageDisplayState.FULL_SCREEN;

Veja Adobe Ação de programação de script 3.

Mas cuidado: em tela cheia, você vai perder performances de exibição

Eu tenho este problema ... mais sob Linux !!!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top