Linux/X11에서 독립형 Adobe FlashPlayer를 프로그래밍 방식으로 시작합니다

StackOverflow https://stackoverflow.com/questions/164460

문제

독립형 플래시 플레이어는 명령 줄에서 시작할 때 .swf 파일 이외의 인수를 사용하지 않습니다. 플레이어가 전체 화면, 창 경계 등이 없어야합니다. 프로그램이 시작되면 Ctrl+F를 치면이를 수행 할 수 있습니다. 인간의 상호 작용없이 전체 화면으로 시작해야하기 때문에 프로그래밍 방식 으로이 작업을 수행하고 싶습니다.

내 생각에 나는 창에 핸들을 가져 와서 "ctrl+f"키 스트로크처럼 보이는 이벤트를 보내야한다는 것입니다.

차이가있는 경우 FlashPlayer가 GTK 응용 프로그램 인 것처럼 보이며 Pygtk가 설치된 Python이 있습니다.

업데이트 (내가 사용한 솔루션 ... ypnos의 답변 덕분) :

./flashplayer http://example.com/example.swf & sleep 3 && ~/xsendkey -window "Adobe Flash Player 10" Control+F
도움이 되었습니까?

해결책

KeyStroke를 Window Manager로 보내는 전용 응용 프로그램을 사용할 수 있으며, 화면의 활성 창으로 시작하면 KeysTroke를 Window Manager로 전달해야합니다. 그러나 이것은 시작 플래시 사이의 지연과 창이 나타날 때의 지연으로 인해 오류가 발생하기 쉽습니다.

예를 들어, 스크립트는 다음과 같은 작업을 수행 할 수 있습니다 : FlashPlayer *.SWF Sleep 3 && XSENDKEY CONTROL+F

응용 프로그램 XSendKey는 여기에서 찾을 수 있습니다. http://people.csail.mit.edu/adonovan/hacks/xsendkey.html특정 창이 제공되지 않으면 창 관리자가 처리하는 루트 창으로 보냅니다. Xprop 또는 관련 항목을 사용하여 창 ID를 먼저 파악하려고 시도 할 수도 있습니다.

또 다른 옵션은 창 관리자로 설정을 기억하고 자동으로 적용 할 수 있습니다. 예를 들어 Fluxbos는이 기능을 제공합니다. FlashPlayer가 크기를 조정하는 경우 플럭스 박스를 창을 장식하고 전체 화면으로 스트레칭하도록 설정할 수 있습니다. 이것은 아마도 당신이 열어 놓은 모든 플래시 플레이어 창에 영향을 줄 것이기 때문에 그다지 나쁘지 않습니다.

다른 팁

나는 실제로 오래 전에이 일을했지만 사소한 것은 아니었다. 우리가 한 일은 사용하는 것입니다 톱니 윈도우 관리자 FlashPlayer 창을 인식하기 위해 후크를 작성한 다음 모든 장식을 제거하고 전체 화면을 스냅했습니다.

외부 응용 프로그램에서 X 윈도우 제작 이벤트에 등록하여 Window Manager를 사용하지 않고는 가능할 수 있지만 X11에 익숙하지 않아서 어떻게 될지 알려줍니다.

또 다른 옵션은 GTK.Socket 내부에 독립형 플래시 플레이어를 내장 한 다음 자체적으로 크기를 조정하는 Pygtk 응용 프로그램을 작성하는 것입니다. 약간의 생각 후에, 이것은 최선의 방법 일 수 있습니다.

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

그것은 [http://gwenole.beauchesne.info//en/projects/nspluginwrapper 프로젝트)

또 다른 옵션은 GTK.Socket 내부에 독립형 플래시 플레이어를 내장 한 다음 자체적으로 크기를 조정하는 Pygtk 응용 프로그램을 작성하는 것입니다. 약간의 생각 후에, 이것은 최선의 방법 일 수 있습니다.

이것이 바로 내가 한 일입니다. 그 외에도 플레이어는 Xcomposite, Xfixes 및 Cairo를 통해 플래시 콘텐츠를 확장합니다. 파이썬 소스를 포함한 .DEB는 여기에 있습니다.http://www.crutzi.info/crutziplayer

BMDHacks가 언급 한 것과 유사한 메커니즘을 사용하여 OpenBox를 사용하여 작업을 수행했습니다. 내가 주목 한 것은 독립형 플래시 플레이어가 최대화되지 않은 창에서 동일한 플레이어보다 상당히 더 나쁜 전체 화면을 수행했다는 것입니다. (메뉴 바로 인해 성가신 것은 전체 화면이 아닙니다). 메뉴를 보이지 않게하기 위해 사용자 정의 GTK 테마로 실행하는 것이 궁금했습니다. 그것은 단지 성능 문제 일뿐입니다. 전체 화면이 현재 정상적으로 작동하면 불필요하게 복잡합니다. 나는 OLPC XO에서 실행하고 있었고, 성능은 더 많은 문제입니다.

나는 nspluginplayer (너무 버그가 생각한다)에 많은 운이 없었습니다.

궁극적으로 나는 실행중인 플래시를 만드는 사치가 있었기 때문에 단순히 플래시 자체에 코드를 배치 할 수있었습니다. 유사한 토큰으로 플래시 내에 플래시를 내릴 수 있으므로 전체 화면으로 가득 차고 대상 SFW를 포함하는 작은 스터브 SWF를 만들 수 있어야합니다.

Acton Script 3 CMD를 사용해야합니다.

stage.displayState = StageDisplayState.FULL_SCREEN;

Adobe Action Script 3 프로그래밍을 참조하십시오.

그러나 조심하십시오 : 전체 화면에서 디스플레이 성능을 잃게됩니다!

나는이 문제가있다 ... 더 많은 Linux에서 !!!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top