防止在XBMC中观看视频时关闭屏幕[关闭]


8

在12.04中,在XBMC中观看视频时,屏幕从未进入休眠状态。但是,升级到12.10并不更改任何设置后,它会执行。

有什么方法可以防止在XBMC中播放视频时自动关闭屏幕,而又不禁止其他时间关闭屏幕?

理想情况下,是否有针对此的XBMC特定设置?这是XBMC的一项功能,现在已在12.10中以某种方式打破了,还是由于Ubuntu中的一些其他非XBMC更改而有所更改?


1
XBMC中应在“省电”>“关闭空闲时关闭”下进行设置,或执行一些相应的操作。你尝试过吗?
Ye Lin Aung 2013年

看电影不是闲着时发生了问题。我不介意(并且实际上喜欢)它在空闲时关闭屏幕。
thomasrutter

您正在使用什么版本?您在ubuntu中有任何特殊的电源设置吗?我正在使用PPA中的(正常,而不是不稳定的)XBMC运行全新的12.10安装,并且不受此影响,因此这似乎不是默认的事情//不影响所有人。(是的,我知道,这对您没有多大帮助,但仍然可以知道它不是一个永远存在的错误
。.I

我使用的是Ubuntu(12.10,最近从12.04升级)版本,而不是PPA版本。没有特殊的电源设置,只有默认的设置,该设置可以在一段时间不活动后关闭显示器。
thomasrutter

感谢您为答案Aditya付出的努力,但我想我宁愿先尝试Nanne答案提出的两种选择。
thomasrutter

Answers:


7

这似乎是ubuntu的XBMC软件包中错误

我不确定您安装的是哪个版本,但是PPA *中的版本似乎没有安装在我的系统上。这可能是因为我在ubuntu中当然有不同的设置,所以您的身高可能有所不同。

如果不这样做,则可以尝试将XBMC用作会话(在登录屏幕上,按名称旁边的ubuntu徽标,然后选择XBMC。您将不会获得团结,而只会获得全屏XMBC)。统一设置将不存在,因此您可能没有屏幕保护程序就很幸运。(如果设置了自动登录,则需要按注销才能进入登录屏幕)

* https://launchpad.net/~team-xbmc/+archive/ppa


感谢您的错误链接,这似乎是我使用Ubuntu的xbmc软件包时出现问题的原因。在家时,我将尝试使用XBMC作为会话,看看是否可以解决该问题。
thomasrutter

11

我们可以创建一个shell脚本,该脚本将以指定的间隔(仅当XBMC运行时)模拟鼠标的移动,并防止屏幕关闭。

按照步骤:

  1. 安装必要的工具:

    我们需要xdotool安装xdotool为我们完成这项工作。通过在终端中运行以下命令来安装它:

    sudo apt-get install xdotool
    
  2. 剧本:

    将以下脚本保存在PC上的任何位置。您可以sleep_period根据需要进行修改,我将其设置为60秒。该脚本检查是否有一个称为xbmc.bin运行的进程。如果找到一个,则在该过程处于活动状态时循环模拟鼠标移动。否则,请在指定的时间间隔后再次检查该过程。

    #!/usr/bin/env bash
    
    sleep_period=60s #seconds
    
    mouse_x=0
    mouse_y=0
    
    movement_px=2
      mouse_x=$(xdotool getmouselocation 2>/dev/null |  sed -e 's/x://' -e 's/y//' -e 's/ screen:.*$//' -e 's/ //' | awk 'BEGIN {FS=":"} {print $1}')
      mouse_y=$(xdotool getmouselocation 2>/dev/null |  sed -e 's/x://' -e 's/y//' -e 's/ screen:.*$//' -e 's/ //' | awk 'BEGIN {FS=":"} {print $1}')
    
    while true; do
      if [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; then
        while [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; do
          xdotool mousemove $((mouse_x+${movement_px})) $((mouse_y+${movement_px}))
          xdotool mousemove $((mouse_x-${movement_px})) $((mouse_y-${movement_px}))
          sleep ${sleep_period}
        done
      else
        sleep ${sleep_period}
      fi
    done
    
  3. 使此脚本可执行:

    右键单击刚刚保存的文件>>选择Properties>>在Permission选项卡中,将复选标记置于Execute

    使脚本可执行

  4. 每次启动时自动执行此脚本:

    我们可以借助Startup Applications来做到这一点。通过按下Enter并查询Startup Applications>>来打开Dash,在Startup Applications窗口中单击Add>>,然后在弹出的对话框中填写以下信息:

    名称:可选,无论您要如何命名。

    命令:保存文件的路径。

    评论:可选,如果您想添加一些。

    启动应用程序首选项

  5. 重新启动系统,并使用XBMC欣赏电影。


如何与其他应用程序一起使用

这是XBMC(流程名称xbmc.bin)的示例。但是,它也可以用于您选择的任何其他过程,只需将您xbmc.bin在步骤2中提到的脚本替换为所需过程的名称即可。在上面的脚本中找到以下几行:

while true; do
  if [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; then
    while [[ $(pidof xbmc.bin | wc -w) -gt 0 ]]; do

xbmc.bin在第2行和第3行中用您选择的进程名称替换。


如何找到进程名称

  • 使用GUI(GNOME):

    我们可以使用System Monitor查找进程的名称。按下Super以打开Dash并查询“系统监视器”以启动它。在Processes选项卡中,我们可以找到“进程名称”作为第一列。

    系统监控器

  • 带终端:

    我们可以运行top以列出所有正在运行的进程。最后一Command列为我们提供了流程的名称(但是仅限于前15个字符)。

    终端<code> top </ code>命令

在这里我们可以看到Firefox仅被命名为firefox。因此,如果我们在运行Firefox时想要这种行为;我们将xbmc.bin在脚本中替换为,firefox其他所有东西都将正常工作。


致谢:我在这里找到了脚本。但是,我进行了必要的修改以使其紧凑并满足问题的要求。


那不是最后,最后,最后什么都没有的方法吗?
Nanne 2013年

1
@Nanne:不……为什么会这样呢?Shell脚本不会占用您的系统资源;当XMBC不运行时,它不会模拟鼠标的移动;您不必记住每次都运行此脚本。尽管XMBC中的“首选项”设置显然是最好的解决方案;因为我不使用XMBC,所以我不知道这样的设置是否存在。我已经用Firefox测试了此Shell脚本,并且可以按OP的预期运行。
Aditya

问题在于,系统在播放视频时不应进入睡眠状态(而对我而言则不然)。显然,这是一种解决方法(您甚至可以称其为hack),但我并不是说这很糟糕,这是一篇出色的文章的支持者,但我仍然会首先寻求一个真正的解决方案(如您所说,您不会知道XBMC,所以在尝试之前可能会有一个实际的了解。同样,您的实际帖子也不错,但是您是否同意在“正常”设置失败后应该尝试移动鼠标呢?
Nanne 2013年

1
@Nanne如我所说,在XMBC中控制它的首选项设置显然是最好的解决方案。但是,谨慎的是我希望OP能够完成他的作业。此外,如果XMBC中提供了这样的设置,我想有人会来提出他的答案。到目前为止,这个问题已经存在7天了-我认为XMBC中没有这个问题。无论如何,当您使用XMBC时,能否请您检查是否可以完成:)
Aditya

3
我不会称其为hack。人们一直在使用Shell脚本来执行这些操作。很棒的答案+1。
赛斯

8

一个非常简单的解决方案是咖啡因。咖啡因是一种“状态栏应用程序,能够临时阻止激活屏幕保护程序和“睡眠”节能模式。

启用它就像单击状态栏指示器一样容易,但是您也可以对其进行设置,以使其在启动xbmc时自动禁用屏幕保护程序。见下面的截图

在此处输入图片说明

如果您使用的是Gnome,则可以安装咖啡因gnome扩展程序。如果不是,对于Ubuntu 15.04(vivid)以下版本,您可以从启动板ppa安装咖啡因:

sudo add-apt-repository ppa:caffeine-developers/ppa
sudo apt-get update
sudo apt-get install caffeine

从15.10开始,您可以不使用ppa进行安装

sudo apt install caffeine

请享用!


这看起来是个好工具。
thomasrutter


@PeterMortensen即使在16.04上,它的确已经过时了。不过,请多加注意,因为我的答案也可以使用更新程序;)我添加了新Ubuntu版本的安装说明。
Gerhard Burger

0

我在〜/ bin /中使用这些:

#!/bin/bash

# ssoff - disable screensaver and power mgmt
pkill xscreensaver
xset s 0
xset -dpms

#!/bin/bash

# sson - activate screen and power mgmt
xscreensaver > /dev/null 2>&1 &
xset s 100
xset +dpms

当然,您可以制作一个图标来运行这些图标,但是我也不使用XBMC


我正在使用Gnome,所以我不认为我正在使用xscreensaver。感谢您的回答。
thomasrutter

0

这些解决方案都会在xbmc运行时(而不只是在播放视频时)关闭屏幕保护程序。因为它具有内置的UPnP服务器,所以我让它保持24/7运行,但是我只想在本地播放视频时禁用屏幕保护程序。

这是我想到的:在XBMC中启用http和JSON支持。然后循环发出一个请求,以找出播放器是否处于活动状态。如果是这样,请发出xscreensaver-command -disable(您可以根据自己的屏幕保护程序进行调整)。如果没有,则什么也不做。每隔50秒检查一次对我来说就足够了。

此处的Python代码:http//sumnerhayes.com/software/


这个问题与Ubuntu 12.10中的XBMC有关,该XBMC有一个错误,即它在播放视频时没有禁用屏幕保护程序。XBMC在Ubuntu的最新版本中不存在此错误,因此我认为您的解决方法不是必需的。XBMC会在播放视频时禁用屏幕保护程序。
thomasrutter 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.