如何在不使用终端的情况下退出 omxplayer?
Posted
技术标签:
【中文标题】如何在不使用终端的情况下退出 omxplayer?【英文标题】:how to quit omxplayer without using terminal? 【发布时间】:2015-07-14 08:54:28 【问题描述】:我使用 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 时启用退出功能?
【问题讨论】:
您是否尝试过杀死从 Python 中以omxplayer
提出的那些进程?
【参考方案1】:
omxPlayer 不能在您的 Xwindows 上运行。它使用 GPU 将自己直接渲染到您的显示器上。因为它不在 Xwindows 上运行,所以它不需要或没有任何关闭按钮。此外,当您启动此播放器时,它会成为您启动它的应用程序的活动窗口。
目前我正在使用另一个并行应用程序来执行命令并运行它
ps -ef | grep /usr/bin/omxplayer | grep -v grep | awk '打印 $2' | xargs 杀死 -9
命令退出。我现在正在寻找更好的解决方案。
【讨论】:
【参考方案2】:我有同样的问题,omxplayer 在播放声音文件后往往会保持活动状态。我发现 omxplayer 在某些 TTY 上往往存在问题。有一个选项--no-keys
似乎让 omxplayer 在播放文件后退出。示例:
omxplayer --no-keys your_sound_file.mp3
【讨论】:
以上是关于如何在不使用终端的情况下退出 omxplayer?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不退出的情况下使用 Firebase API 创建新用户? [复制]