双击任何视频(我尝试了不同的格式)VLC 只会打开并在大约 14 秒后再次关闭:
如果我这样做,它会正常工作:
- 从终端或任何其他方式打开 VLC,然后打开同一个文件。
killall nautilus
,运行nautilus
并双击该文件(这让我很惊讶)。- 使用 Nemo、Double-commander 或其他文件管理器并双击该文件。
最后的想法让我认为这是一个鹦鹉螺错误,但在任何其他程序中都没有发生。
我试过:
- 奇怪的事情,比如尝试使用 with 获取 stdout/stderr
strace -p`pgrep -l '^vlc$' | col1 | head -1` -s9999 -e write
。watch
我做不到。 - 关于
Exec
的参数/usr/share/applications/vlc.desktop
我有/usr/bin/vlc --started-from-file %U
。没有运气,我尝试更改为:
文件格式与 VLC 正确关联。如果我将其与其他程序关联,一切都很顺利。
也许一个相关的有用的问题是:Nautilus 究竟如何运行双击文件的关联程序?
更新 2018-02-12
这发生在 Ubuntu 16.04 上的 Unity 上。现在使用 VLC 2.2.2-0-g6259d80 和 GNOME nautilus 3.14.3我不再有这个问题了。所以很可能是 nautilus 的一个错误(因为与 VLC 是同一版本)。
答案1
答案2
打开终端:
sudo nano /usr/share/applications/vlc.desktop
添加后Exec=
:
/usr/bin/vlc --started-from-file %U
如果这不起作用,请尝试使用/usr/bin/vlc
。最后的办法是使用以下行:
xterm -e "vlc"
但我认为您想避免终端依赖。
答案3
答案4
TL;DR:运行killall vlc
,然后尝试再次单击图标。
删除确实--started-from-file
有帮助,但经过一番调查后,我发现这个(未记录的)选项可能会导致一些特殊行为,而根本原因似乎有所不同:
如果已经存在某个vlc
进程,新vlc
进程会在 dbus 上询问是否有另一个 vlc 正在运行,如果有,它会要求旧进程打开新窗口并退出。
这一切都很好,但只有如果旧流程不是卡住不知何故——不打开窗户。在这种情况下,类似的东西killall vlc
应该会有所帮助。
不幸的是,目前我无法重现并证实这一假设。