7

当您从命令行启动时,独立的 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
4

6 回答 6

7

您可以使用专门的应用程序将击键发送到窗口管理器,然后如果窗口作为屏幕上的活动窗口启动,它应该将其传递给 flash。但是,这很容易出错,因为启动 flash 和窗口出现时间之间存在延迟。

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

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

另一个选项是窗口管理器,它能够记住您的设置并自动应用它们。例如 Fluxbos 就提供了这个功能。如果 flashplayer 支持调整大小,您可以设置 Fluxbox 以减少 Window 装饰并将其拉伸到整个屏幕。这也不是很好,因为它可能会影响您打开的所有 Flashplayer 窗口。

于 2008-10-02T23:44:15.357 回答
1

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

这可能在不使用窗口管理器的情况下通过从外部应用程序注册 X 窗口创建事件来实现,但我对 X11 不够熟悉,无法告诉您如何完成。

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

于 2008-10-02T21:26:19.480 回答
1
nspluginplayer --fullscreen src=path/to/flashfile.swf

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

于 2008-11-10T13:40:49.643 回答
1

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

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

于 2012-06-04T06:56:19.980 回答
0

我已经使用与 bmdhacks 提到的机制类似的机制使用 openbox 完成了这项工作。我从中确实注意到的是,独立的 Flash 播放器在全屏时的表现比在最大化的未装饰窗口中的相同播放器要差得多。(由于菜单栏,令人讨厌的是不能正确全屏)。我想知道使用自定义 gtk 主题运行它以使菜单不可见。不过,这只是一个性能问题。如果全屏当前可以正常工作,那么它会非常复杂。我在 OLPC XO 上运行,那里的性能更是一个问题。

我对 nspluginplayer 运气不佳(我认为这太麻烦了)。

最终,我有幸制作了正在运行的闪存,因此我可以简单地将代码放入闪存本身。出于类似的原因,由于您可以在 flash 中嵌入 flash,因此应该可以制作一个自动全屏并包含目标 sfw 的小存根 swf。

于 2010-02-16T21:31:19.987 回答
0

您必须使用 Acton 脚本 3 cmd:

stage.displayState = StageDisplayState.FULL_SCREEN;

请参阅 Adob​​e Action 脚本 3 编程。

但要小心:在全屏下,你会失去显示性能!

我遇到了这个问题......在Linux下更多!

于 2010-10-22T07:57:47.483 回答