所以我升级到了 Ubuntu 12.10,并从存储库安装了 smplayer。问题是,当我播放电影时(即使是全屏播放),屏幕保护程序就会出现。我必须禁用 smplayer 中启用的屏幕保护程序,但似乎不起作用
apt-cache policy mplayer
mplayer:
Installed: 2:1.0~rc4.dfsg1+svn34540-1ubuntu2
Candidate: 2:1.0~rc4.dfsg1+svn34540-1ubuntu2
Version table:
*** 2:1.0~rc4.dfsg1+svn34540-1ubuntu2 0
500 http://pt.archive.ubuntu.com/ubuntu/ quantal/universe amd64 Packages
100 /var/lib/dpkg/status
apt-cache policy gnome-screensaver
gnome-screensaver:
Installed: 3.6.0-0ubuntu2
Candidate: 3.6.0-0ubuntu2
Version table:
*** 3.6.0-0ubuntu2 0
500 http://pt.archive.ubuntu.com/ubuntu/ quantal-updates/main amd64 Packages
100 /var/lib/dpkg/status
3.6.0-0ubuntu1 0
500 http://pt.archive.ubuntu.com/ubuntu/ quantal/main amd64 Packages
有任何想法吗?
答案1
-p 选项不再存在。
这是 gnome-screensaver 中的一个错误。 http://lists.mplayerhq.hu/pipermail/mplayer-users/2012-November/085566.html
答案2
首先安装 xdotool 然后添加到 mplayer 配置或命令行
heartbeat-cmd="xdotool key shift"
这将发送 Shift 键按下和释放,如上面的代码所示,但使用 xdotool。
答案3
我不确定 smplayer 是否读取 ~.mplayer/config,但你需要
sudo apt-get install libxtst-dev
(可能更多,我已经安装了一些开发包)
将其粘贴到名为 sendXshift.c 的文件中
/* program to send shift-down, shift-up through X test extension to indicate that the X session isn't idle */
#include <stdio.h>
#include <stdlib.h>
#include <X11/Xlib.h>
#include <X11/extensions/Xext.h>
#include <X11/extensions/XTest.h>
int main(){
Display *dpy;
Status stat;
int i1,i2,i3,i4;
Bool stat1;`
dpy = XOpenDisplay(NULL);
if (dpy == NULL){
printf("open display failed\n");
exit(1);
}
stat1 = XTestQueryExtension(dpy,&i1,&i2,&i3,&i4);
if (stat1 == 0){
printf("Xtest not supported\n");
XCloseDisplay(dpy);
exit(1);
}
// shift down:
XTestFakeKeyEvent(dpy,0x32,True,CurrentTime);
// shift up:
XTestFakeKeyEvent(dpy,0x32,False,CurrentTime);
XCloseDisplay(dpy);
}
并用 进行编译cc -o sendXshift sendXshift.c -lX11 -lXtst
,使其可执行,然后放入heartbeat-cmd="/PATH/TO/COMPILED/FILE/sendXshift"
。
这应该直到/如果http://bugzilla.mplayerhq.hu/show_bug.cgi?id=1887解决了。
答案4
我的猜测是这样的:gnome-screensaver 删除了“poke”参数。
然而,Mplayer 试图通过以下方式打开屏幕保护程序
heartbeat-cmd="gnome-screensaver-command -p"
并失败了。
我不知道如何继续,将 heartbeat 命令设置为
heartbeat-cmd="gnome-screensaver-command --exit"
将禁用整个会话的屏幕保护程序。
最好安装屏幕保护程序而是。或者使用 DBUS 来禁止屏幕保护程序。对于 gnome-shell,有扩展可以手动暂停屏幕保护程序。