因此,我升级到Ubuntu12.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有什么想法吗?
发布于 2012-11-12 16:37:37
-p选项不再存在。
它是侏儒屏幕保护程序中的一个bug。http://lists.mplayerhq.hu/pipermail/mplayer-users/2012-November/085566.html
发布于 2013-02-11 22:04:18
首先安装xdotool,然后添加到mplayer配置或comand行。
heartbeat-cmd="xdotool key shift"这将发送shift键按下,并以上面的代码发布,但使用xdotool。
发布于 2012-12-14 14:11:34
我不确定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 isi解决了,这应该是可行的。
https://askubuntu.com/questions/214549
复制相似问题