我已经使用Tkinter为覆盆子pi制作了一个应用程序启动器 . 我使应用程序启动器在x加载后通过放置自动启动
@/usr/bin/sudo /home/pi/myscript.py inside /etc/xdg/lxsession/LXDE-pi/autostart.
并且为了从python脚本中启动应用程序,我正在使用子进程模块 . 同样的代码是:
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时为omxplayer启用退出操作?
2 回答
omxPlayer无法在您的Xwindows上运行 . 它使用GPU直接在显示器上渲染自己 . 因为它不在Xwindows上运行,所以它不需要或没有任何关闭按钮 . 此外,当您启动此播放器时,它将成为您启动它的应用程序的活动窗口 .
目前我正在使用另一个执行命令的并行应用程序并运行它
命令退出此 . 我现在正在努力寻找更好的解决方案 .
我有同样的问题,omxplayer在播放声音文件后往往会保持活力 . 我发现omxplayer往往会遇到某些TTY问题 . 有一个选项
--no-keys
似乎在播放文件后使omxplayer退出 . 例: