Ngăn tắt màn hình khi xem video trong XBMC [đã đóng]


8

Vào ngày 12.04, màn hình không bao giờ chuyển sang chế độ ngủ khi xem video trong XBMC. Tuy nhiên, sau khi nâng cấp lên 12.10 và không thay đổi cài đặt nào.

Có cách nào để tôi có thể ngăn màn hình tự động tắt trong khi phát video trong XBMC mà không thực sự vô hiệu hóa màn hình tắt vào lúc khác không?

Lý tưởng nhất là có cài đặt cụ thể XBMC cho việc này không? Đây có phải là một tính năng của XBMC hiện đã bị phá vỡ bằng cách nào đó trong 12.10 hoặc điều này đã thay đổi do một số thay đổi không phải XBMC khác trong Ubuntu?


1
Cần có một cài đặt trong XBMC trong phần Tiết kiệm năng lượng> Tắt khi không hoạt động hoặc một cái gì đó cho hiệu ứng đó. Bạn đã thử chưa?
Ye Lin Aung

Vấn đề đang xảy ra trong khi xem phim, không phải là nhàn rỗi. Tôi không bận tâm (và thực sự thích) nó tắt màn hình khi không hoạt động.
thomasrutter

Bạn đang sử dụng phiên bản nào? Bạn có bất kỳ cài đặt năng lượng đặc biệt nào trong Ubuntu không? Tôi đang chạy bản cài đặt 12.10 mới với XBMC (bình thường, không ổn định) từ PPA và tôi không bị ảnh hưởng bởi điều này, vì vậy nó dường như không phải là một điều mặc định // không ảnh hưởng đến tất cả mọi người . (vâng, tôi biết, điều đó không giúp ích gì cho bạn nhiều, nhưng vẫn có thể giúp biết nó không phải là một lỗi hiện tại .. Tôi không biết :))
Nanne

Tôi đang sử dụng phiên bản từ Ubuntu (12.10, được nâng cấp gần đây từ 12.04), không phải từ PPA. Không có cài đặt nguồn đặc biệt, chỉ có mặc định tắt màn hình sau một thời gian không hoạt động.
thomasrutter

Cảm ơn những nỗ lực mà bạn đã bỏ ra để trả lời Aditya nhưng tôi nghĩ rằng tôi muốn thử hai phương án được đề xuất bởi câu trả lời của Nanne trước tiên.
thomasrutter

Câu trả lời:


7

Đây có vẻ là một lỗi trong gói XBMC cho ubfox

Tôi không chắc bạn đã cài đặt phiên bản nào, nhưng phiên bản từ PPA * dường như không có phiên bản đó trên hệ thống của tôi. Điều này có thể là do tôi có các cài đặt khác nhau trong ubfox, do đó, số dặm của bạn có thể thay đổi.

Nếu bạn không, bạn có thể thử sử dụng XBMC làm phiên (trên màn hình đăng nhập của bạn, nhấn logo ub Ubuntu bên cạnh tên của bạn và chọn XBMC. Bạn sẽ không nhận được sự thống nhất, nhưng chỉ là XMBC toàn màn hình). Các cài đặt cho sự thống nhất sẽ không có ở đó, vì vậy bạn có thể gặp may khi không có trình bảo vệ màn hình. (Nếu bạn có bộ đăng nhập tự động, bạn cần nhấn đăng xuất để có màn hình đăng nhập)

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


Cảm ơn liên kết lỗi, đó có vẻ là lý do cho sự cố của tôi khi tôi đang sử dụng gói xbmc từ Ubuntu. Tôi sẽ thử sử dụng XBMC như một phiên khi tôi ở nhà và xem điều đó có khắc phục được không.
thomasrutter

11

Chúng tôi có thể tạo một tập lệnh shell sẽ mô phỏng chuyển động của chuột trong một khoảng thời gian xác định (chỉ khi XBMC đang chạy) và ngăn màn hình của bạn tắt.

Thực hiện theo các bước:

  1. Cài đặt các công cụ cần thiết:

    Chúng tôi sẽ cần xdotoolCài đặt xdotool để làm công việc này cho chúng tôi. Cài đặt nó bằng cách chạy lệnh sau trong terminal:

    sudo apt-get install xdotool
    
  2. Kịch bản:

    Lưu tập lệnh sau ở bất cứ đâu trên PC của bạn. Bạn có thể sửa đổi sleep_periodtheo nhu cầu của bạn, tôi đã đặt nó ở mức 60 giây. Kịch bản kiểm tra nếu có một quá trình gọi là xbmc.binchạy; và nếu nó tìm thấy một, thì nó lặp để mô phỏng chuyển động của chuột trong khi quá trình đang hoạt động. Mặt khác, kiểm tra lại quá trình sau khoảng thời gian được chỉ định.

    #!/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. Làm cho tập lệnh này có thể thực thi được:

    Nhấp chuột phải vào tệp bạn vừa lưu >> Chọn Properties>> Trong Permissiontab, đặt dấu Kiểm vào Execute.

    làm cho kịch bản thực thi

  4. Thực thi tập lệnh này tự động trên mỗi lần khởi động:

    Chúng tôi có thể làm điều này với sự trợ giúp của Ứng dụng khởi động . Mở Dash của bạn bằng cách nhấn Entervà truy vấn Startup Applications>> Trong Cửa sổ ứng dụng khởi động, nhấp vào Add>> Sau đó, trong hộp thoại bật lên, điền thông tin:

    Tên: tùy chọn, bất cứ điều gì bạn muốn đặt tên này.

    Lệnh: đường dẫn đến tệp mà bạn đã lưu nó.

    Nhận xét: tùy chọn, nếu bạn muốn thêm một số.

    ưu tiên ứng dụng khởi động

  5. Khởi động lại hệ thống của bạn và thưởng thức phim của bạn với XBMC.


Cách sử dụng với các Ứng dụng khác

Đây là một ví dụ cho XBMC (Tên quy trình xbmc.bin). Tuy nhiên, nó cũng có thể được sử dụng cho bất kỳ quy trình nào khác mà bạn chọn bằng cách chỉ thay thế xbmc.bintrong Tập lệnh được đề cập trong Bước 2 bằng tên của quy trình bạn muốn. Tìm các dòng sau trong đoạn script trên:

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

Và thay thế xbmc.bintrong cả hai dòng 2 và 3 bằng tên quy trình bạn chọn.


Cách tìm tên quy trình

  • Với GUI (Gnome):

    Chúng ta có thể sử dụng System Monitorđể tìm tên của quá trình. Nhấn Superđể mở Dash và truy vấn "System Monitor" để khởi chạy nó. Trong ProcessesTab, chúng ta có thể tìm thấy Tên quy trình làm cột đầu tiên.

    Giám sát hệ thống

  • Với thiết bị đầu cuối:

    Chúng tôi có thể chạy topđể liệt kê tất cả các quy trình đang chạy. Cột cuối cùng được gọi Commandcho chúng ta tên của Quá trình (tuy nhiên nó bị giới hạn ở 15 ký tự đầu tiên).

    Lệnh <code> top </ code>

Ở đây chúng ta có thể thấy rằng Firefox chỉ được đặt tên là firefox. Vì vậy, nếu chúng ta muốn hành vi này khi Firefox đang chạy; chúng tôi sẽ thay thế xbmc.bintrong kịch bản firefoxvà mọi thứ khác sẽ hoạt động tốt.


Lời cảm ơn: Tôi đã tìm thấy kịch bản ở đây . Tuy nhiên, tôi đã thực hiện các sửa đổi cần thiết để làm cho nó nhỏ gọn và đáp ứng các yêu cầu của câu hỏi.


Đó sẽ không phải là một khu nghỉ mát cuối cùng, cuối cùng, cuối cùng, không có gì khác làm việc?
Nanne

1
@Nanne: Không ... Tại sao lại như vậy; kịch bản shell sẽ không hog tài nguyên hệ thống của bạn; và nó sẽ không mô phỏng chuyển động của chuột khi XMBC không chạy; cũng như bạn sẽ không phải nhớ chạy tập lệnh này mọi lúc ... Mặc dù cài đặt Ưu tiên trong XMBC rõ ràng sẽ là giải pháp tốt nhất; vì tôi không sử dụng XMBC - Tôi không biết nếu cài đặt như vậy tồn tại. Tôi đã thử nghiệm tập lệnh Shell này với Firefox và nó hoạt động như mong đợi của OP.
Aditya

Vấn đề là hệ thống không nên đi ngủ trong khi phát video (và đối với tôi thì không). Đây rõ ràng là một cách giải quyết (bạn có thể gọi là hack chẵn) và tôi không nói nó là xấu, đạo cụ cho bạn cho bài đăng tuyệt vời này, nhưng trước tiên tôi vẫn sẽ tìm kiếm một giải pháp thực sự (như bạn nói, bạn không biết về XBMC, vì vậy có thể có một thực tế) trước khi bạn thử điều này. Một lần nữa, không có gì xấu về bài đăng thực tế của bạn, nhưng bạn không đồng ý rằng làm cho chuột di chuyển là điều bạn nên thử sau khi cài đặt "bình thường" không thành công?
Nanne

1
@Nanne Như tôi đã nói, Cài đặt ưu tiên trong XMBC để kiểm soát nó rõ ràng sẽ là giải pháp tốt nhất. Tuy nhiên, thật khôn ngoan khi tôi hy vọng rằng OP đã hoàn thành bài tập về nhà của mình. Hơn nữa, nếu cài đặt như vậy có sẵn trong XMBC, tôi nghĩ ai đó sẽ đến và đăng câu trả lời của mình. Câu hỏi đã được 7 ngày tính đến thời điểm hiện tại - Tôi không nghĩ nó có trong XMBC. Dù sao, khi bạn sử dụng XMBC, bạn có thể vui lòng kiểm tra xem nó có thể được thực hiện không :)
Aditya

3
Tôi sẽ không gọi đây là hack. Mọi người sử dụng shell script để làm những việc này mọi lúc. Câu trả lời tuyệt vời +1.
Seth

8

Một giải pháp rất đơn giản là caffeine . Caffeine là một 'ứng dụng thanh trạng thái có thể tạm thời ngăn chặn việc kích hoạt cả chế độ bảo vệ màn hình và chế độ tiết kiệm năng lượng "ngủ".

Việc kích hoạt nó dễ dàng như nhấp vào chỉ báo trên thanh trạng thái, nhưng bạn cũng có thể thiết lập nó để nó tự động vô hiệu hóa trình bảo vệ màn hình khi bạn khởi động xbmc. Xem ảnh chụp màn hình bên dưới

nhập mô tả hình ảnh ở đây

Nếu bạn đang sử dụng Gnome, bạn có thể cài đặt tiện ích mở rộng caffeine gnome . Nếu không, đối với Ubuntu tối đa 15.04 (sống động), bạn có thể cài đặt caffeine từ bảng khởi chạy ppa:

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

từ 15.10 trở đi bạn có thể cài đặt mà không cần ppa

sudo apt install caffeine

Thưởng thức!


Đây trông giống như một công cụ tốt.
thomasrutter


@PeterMortensen Nó hoạt động, ngay cả vào ngày 16.04, câu trả lời đó đã lỗi thời. Tuy nhiên, cảm ơn về headup, vì câu trả lời của tôi cũng có thể sử dụng bản cập nhật;) Tôi đã thêm các hướng dẫn cài đặt cho các phiên bản Ubuntu mới hơn.
Burger Gerhard

0

Tôi sử dụng chúng trong ~ / 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

tất nhiên bạn có thể tạo một biểu tượng để chạy chúng nhưng tôi cũng không sử dụng XBMC


Tôi đang sử dụng Gnome nên tôi không nghĩ mình đang sử dụng xscreenaver. Cảm ơn câu trả lời của bạn.
thomasrutter

0

Tất cả các giải pháp này đều tắt trình bảo vệ màn hình bất cứ khi nào xbmc đang chạy, không chỉ khi phát video. Vì nó có máy chủ UPnP tích hợp, tôi để nó chạy 24/7 nhưng tôi chỉ muốn tắt trình bảo vệ màn hình khi video được phát cục bộ.

Đây là những gì tôi nghĩ ra: bật hỗ trợ http và JSON trong XBMC. Sau đó lặp lại yêu cầu để tìm hiểu xem người chơi có hoạt động hay không. Nếu đúng như vậy, hãy đưa ra lệnh xscreenaver -disable (bạn có thể điều chỉnh điều này theo trình bảo vệ màn hình của bạn). Nếu không, không làm gì cả. Kiểm tra cứ sau 50 giây là rất nhiều đối với tôi.

Mã Python tại đây: http://sumnerhayes.com/software/


Câu hỏi này là về XBMC trong Ubuntu 12.10 có một lỗi mà nó không vô hiệu hóa trình bảo vệ màn hình trong khi phát video. Lỗi này không tồn tại trong XBMC trong các phiên bản cập nhật hơn của Ubuntu, vì vậy tôi không nghĩ cách giải quyết của bạn là cần thiết. XBMC vô hiệu hóa trình bảo vệ màn hình trong khi phát video.
thomasrutter
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.