0

我使用 Tkinter 为树莓派制作了一个应用程序启动器。我通过放置使应用程序启动器在 x 加载后自动启动

@/usr/bin/sudo /home/pi/myscript.py 在 /etc/xdg/lxsession/LXDE-pi/autostart 中。

对于从 python 脚本中启动应用程序,我使用的是 subprocess 模块。相同的代码是:

subprocess.Popen('python /home/pi/script.py')
subprocess.Popen('scratch')
subprocess.Popen('omxplayer -o local /home/pi/video.mp4',shell=True)

现在发生的事情是所有进程都运行良好,即所有应用程序都能完美启动,当我关闭应用程序(使用关闭按钮或 alt+f4)时,它也运行良好。

但是 omxplayer 似乎处于全屏模式(尽管它没有覆盖我的整个屏幕)。那里没有关闭按钮。一些文档说有快捷键,比如 q 用于退出,但这也不起作用。 alt+f4 也不起作用,而且因为我是从我的 python 脚本(应用程序启动器)中启动它,所以我不能使用终端退出它。

但是当我从终端中启动相同的视频时,q 和 alt+f4 都可以正常工作(即我可以同时使用它们来退出 omxplayer)。

那么任何人都可以解释为什么会发生这种情况,以及如何在从 python 脚本中启动 omxplayer 时启用退出功能?

4

2 回答 2

1

omxPlayer 不能在您的 Xwindows 上运行。它使用 GPU 将自己直接渲染到您的显示器上。因为它不在 Xwindows 上运行,所以它不需要或没有任何关闭按钮。此外,当您启动此播放器时,它会成为您启动它的应用程序的活动窗口。

目前我正在使用另一个执行命令并运行它的并行应用程序

ps -ef | grep /usr/bin/omxplayer | grep -v grep | awk '{打印 $2}' | xargs 杀死 -9

命令退出这个。我现在正在寻找一些更好的解决方案。

于 2016-04-16T07:15:58.153 回答
0

我有同样的问题,omxplayer 在播放声音文件后往往会保持活力。我发现 omxplayer 在某些 TTY 上往往存在问题。有一个选项--no-keys似乎使 omxplayer 在播放文件后退出。例子:

omxplayer --no-keys your_sound_file.mp3
于 2017-02-16T10:31:10.997 回答