从命令行启动时,独立的flashplayer不会使用.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
有帮助吗?

解决方案

如果窗口作为屏幕上的活动窗口启动,您可以使用专用应用程序将按键发送到窗口管理器,然后将其传递给闪存。但是,由于启动闪存和窗口显示之间的延迟,这很容易出错。

例如,您的脚本可以执行以下操作: flashplayer * .swf 睡3&& xsendkey Control + F

可以在此处找到应用程序xsendkey: http://people.csail .mit.edu / adonovan /黑客/ xsendkey.html 如果没有给定特定窗口,它会将其发送到根窗口,该窗口由窗口管理器处理。你也可以尝试首先找出Window id,使用xprop或与之相关的东西。

另一个选项是窗口管理器,它能够记住您的设置并自动应用它们。例如,Fluxbos提供此功能。如果flashplayer支持调整大小,你可以设置fluxbox以使Window无装饰并在整个屏幕上拉伸它。这也不太好,因为它可能会影响你打开的所有flashplayer窗口。

其他提示

我很久以前就已经这样做了,但这并不是小事。我们所做的是使用 Sawfish窗口管理器并编写一个钩子来识别flashplayer窗口,然后剥去所有装饰品并将其全屏捕捉。

这可以在不使用窗口管理器的情况下通过从外部应用程序注册X窗口创建事件来实现,但是我对X11不太熟悉,告诉你如何做到这一点。

另一种选择是编写一个pygtk应用程序,将独立的flash播放器嵌入到gtk.Socket中,然后自行调整大小。经过一番思考,这可能是你最好的选择。

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

来自[ http://gwenole.beauchesne.info/ / en / projects / nspluginwrapper](nspluginwrapper 项目)

  

另一种选择是编写一个pygtk应用程序,将独立的flash播放器嵌入到gtk.Socket中,然后自行调整大小。经过一番思考,这可能是你最好的选择。

这正是我所做的。除此之外,我的播放器通过Xcomposite,Xfixes和Cairo缩放flash内容。在这里可以找到包含python源代码的.deb: http://www.crutzi.info/crutziplayer

我使用openbox使用类似于bmdhacks提到的机制来完成此操作。我从中注意到的事情是,独立的闪存播放器在最大化的未装饰窗口中比同一个播放器的全屏显示差得多。 (因为菜单栏,令人讨厌的是全屏不正确)。我想知道用自定义gtk主题运行它以使菜单不可见。这只是一个性能问题。如果全屏目前工作正常,那么它就不必要了。我在OLPC XO上运行,性能更像是一个问题。

我对nspluginplayer没有太多运气(我认为太麻烦)。

最终,我有幸制作了正在运行的闪存,因此我可以简单地将代码放入闪存本身。通过类似的方式,因为您可以在闪存中嵌入闪存,所以应该可以制作一个自动全屏显示并包含目标sfw的小短信swf。

你必须使用Acton脚本3 cmd:

stage.displayState = StageDisplayState.FULL_SCREEN;

请参阅Adobe Action脚本3编程。

但要小心:在全屏幕中,你将失去显示效果!

我有这个问题......在Linux下更多!!!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top