ป้องกันการปิดหน้าจอเมื่อดูวิดีโอใน XBMC [ปิด]


8

ใน 12.04 หน้าจอไม่เคยหลับขณะที่ดูวิดีโอใน XBMC อย่างไรก็ตามหลังจากอัปเกรดเป็น 12.10 และไม่มีการเปลี่ยนแปลงการตั้งค่า

มีวิธีใดบ้างที่ฉันสามารถป้องกันไม่ให้หน้าจอถูกปิดโดยอัตโนมัติในขณะที่เล่นวิดีโอใน XBMC โดยไม่ต้องปิดการใช้งานหน้าจอในเวลาอื่นหรือไม่?

เป็นการดีที่มีการตั้งค่าเฉพาะ XBMC สำหรับสิ่งนี้หรือไม่ นี่เป็นคุณสมบัติของ XBMC ที่ตอนนี้แตกหักในเวลา 12.10 หรือมีการเปลี่ยนแปลงเนื่องจากมีการเปลี่ยนแปลงอื่น ๆ ที่ไม่ใช่ XBMC ภายใน Ubuntu หรือไม่


1
ควรมีการตั้งค่าใน XBMC ภายใต้การประหยัดพลังงาน> ปิดการใช้งานหรือบางสิ่งบางอย่างเพื่อผลกระทบนั้น คุณเคยลองไหม
Ye Lin Aung

ปัญหากำลังเกิดขึ้นขณะรับชมภาพยนตร์ซึ่งไม่ได้ใช้งาน ฉันไม่รังเกียจ (และชอบ) มันปิดหน้าจอในขณะที่ไม่ได้ใช้งาน
thomasrutter

คุณใช้เวอร์ชั่นอะไร คุณมีการตั้งค่าพลังงานพิเศษในอูบุนตูหรือไม่? ฉันกำลังทำการติดตั้งครั้งใหม่ 12.10 ด้วย XBMC (ปกติไม่ใช่เสถียร) จาก PPA และฉันไม่ได้รับผลกระทบจากสิ่งนี้ดังนั้นจึงดูเหมือนจะไม่เป็นสิ่งเริ่มต้น // ไม่ส่งผลกระทบต่อทุกคน . (ใช่ฉันรู้ว่ามันไม่ได้ช่วยอะไรมาก แต่ก็ยังช่วยได้ว่ามันไม่ใช่ข้อผิดพลาดที่เกิดขึ้นในปัจจุบัน .. ฉันดู
โน่

ฉันใช้เวอร์ชันจาก Ubuntu (12.10 เพิ่งอัพเกรดจาก 12.04) ไม่ใช่ PPA ไม่มีการตั้งค่าพลังงานพิเศษเพียงค่าเริ่มต้นซึ่งจะปิดจอภาพหลังจากไม่มีการใช้งานเป็นระยะเวลาหนึ่ง
thomasrutter

ขอบคุณสำหรับความพยายามที่คุณตอบคำถามนี้ Aditya แต่ฉันคิดว่าฉันควรลองทั้งสองทางเลือกที่เสนอโดยคำตอบของ Nanne ก่อน
thomasrutter

คำตอบ:


7

นี่น่าจะเป็นจุดบกพร่องในแพ็คเกจ XBMC สำหรับ Ubuntu

ฉันไม่แน่ใจว่าคุณติดตั้งรุ่นใด แต่รุ่นจาก PPA * ดูเหมือนจะไม่มีในระบบของฉัน อาจเป็นเพราะฉันมีการตั้งค่าที่แตกต่างกันในอูบุนตูแน่นอนดังนั้น milleage ของคุณอาจแตกต่างกัน

หากไม่เป็นเช่นนั้นคุณสามารถลองใช้ XBMC เป็นเซสชัน (บนหน้าจอเข้าสู่ระบบของคุณกดโลโก้ ubuntu ถัดจากชื่อของคุณแล้วเลือก XBMC คุณจะไม่ได้รับเอกภาพ แต่เป็น XMBC แบบเต็มหน้าจอ) การตั้งค่าสำหรับความสามัคคีจะไม่อยู่ที่นั่นดังนั้นคุณอาจโชคดีที่ไม่มีสกรีนเซฟเวอร์ (หากคุณตั้งค่าการลงชื่อเข้าใช้อัตโนมัติคุณต้องกดออกจากระบบเพื่อรับหน้าจอเข้าสู่ระบบ)

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


ขอบคุณสำหรับลิงก์ข้อผิดพลาดที่ดูเหมือนว่าสาเหตุของปัญหาของฉันในขณะที่ฉันใช้แพคเกจ xbmc จาก Ubuntu ฉันจะลองใช้ XBMC เป็นเซสชันเมื่อฉันอยู่ที่บ้านและดูว่าแก้ไขได้หรือไม่
thomasrutter

11

เราสามารถสร้างเชลล์สคริปต์ซึ่งจำลองการเคลื่อนไหวของเมาส์ตามช่วงเวลาที่กำหนด (เฉพาะเมื่อ XBMC กำลังทำงาน) และป้องกันไม่ให้หน้าจอปิด

ทำตามขั้นตอน:

  1. ติดตั้งเครื่องมือที่จำเป็น:

    เราต้องการxdotoolติดตั้ง xdotoolเพื่อทำงานนี้ให้เรา ติดตั้งโดยใช้คำสั่งต่อไปนี้ใน terminal:

    sudo apt-get install xdotool
    
  2. สคริปต์:

    บันทึกสคริปต์ต่อไปนี้ได้ทุกที่บนพีซีของคุณ คุณสามารถปรับเปลี่ยน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. รันสคริปต์นี้โดยอัตโนมัติทุกครั้งที่เริ่มต้น:

    เราสามารถทำเช่นนี้ด้วยความช่วยเหลือของการประยุกต์ใช้งานเริ่มต้น เปิด Dash ของคุณโดยการกดEnterและค้นหา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 และสอบถามคำว่า "System Monitor" เพื่อเปิดใช้งาน ในProcessesแท็บเราสามารถค้นหาชื่อกระบวนการเป็นคอลัมน์แรก

    การตรวจสอบระบบ

  • ด้วยเทอร์มินัล:

    เราสามารถเรียกใช้topเพื่อแสดงรายการกระบวนการทำงานทั้งหมด คอลัมน์สุดท้ายที่เรียกว่าCommandให้ชื่อเราของกระบวนการ (แต่มันถูก จำกัด ไว้ที่ 15 ตัวอักษรแรก)

    คำสั่ง Terminal <code> ด้านบน </code>

ที่นี่เราจะเห็นว่า Firefox firefoxเป็นชื่อเช่นเดียวกับที่ ดังนั้นหากเราต้องการพฤติกรรมนี้เมื่อ Firefox กำลังทำงาน เราจะแทนที่xbmc.binสคริปต์ด้วยfirefoxและทุกอย่างอื่นก็ใช้ได้ดี


รับทราบ:ฉันได้พบสคริปต์ที่นี่ อย่างไรก็ตามฉันได้ทำการแก้ไขที่จำเป็นเพื่อให้กะทัดรัดและตอบสนองความต้องการของคำถาม


จะไม่เป็นครั้งสุดท้าย, สุดท้าย, สุดท้ายไม่มีอะไรอย่างอื่นทำงานรีสอร์ท?
Nanne

1
@Nanne: ไม่ ... ทำไมต้องเป็นเช่นนั้น เชลล์สคริปต์จะไม่ทำให้ทรัพยากรระบบของคุณแย่ลง และมันจะไม่จำลองการเคลื่อนไหวของเมาส์เมื่อ XMBC ไม่ทำงาน เช่นเดียวกับคุณไม่ต้องจำที่จะเรียกใช้สคริปต์นี้ทุกครั้ง ... แม้ว่าการตั้งค่าใน XMBC จะเป็นทางออกที่ดีที่สุดอย่างแน่นอน เนื่องจากฉันไม่ได้ใช้ XMBC - ฉันไม่รู้ว่ามีการตั้งค่าดังกล่าวหรือไม่ ฉันได้ทดสอบเชลล์สคริปต์นี้ด้วย Firefox และทำงานได้ตามที่คาดไว้โดย OP
Aditya

ปัญหาคือระบบไม่ควรเข้าสู่โหมดสลีปขณะเล่นวิดีโอ (และสำหรับฉันมันไม่ได้) เห็นได้ชัดว่านี่เป็นวิธีแก้ปัญหา (คุณอาจเรียกว่าแฮ็คแม้) และฉันไม่ได้บอกว่ามันแย่อุปกรณ์สำหรับคุณสำหรับโพสต์ที่ยอดเยี่ยมนี้ แต่ฉันยังคงก่อนจะหาทางออกที่แท้จริง (เช่นที่คุณพูดคุณไม่ รู้เกี่ยวกับ XBMC ดังนั้นอาจมีจริง) ก่อนที่คุณจะลอง อีกครั้งไม่มีอะไรเลวร้ายเกี่ยวกับการโพสต์จริงของคุณ แต่คุณไม่เห็นด้วยว่าการเลื่อนเมาส์เป็นสิ่งที่คุณควรลองหลังจากการตั้งค่า "ปกติ" ล้มเหลว?
Nanne

1
@Nanne ดังที่ฉันได้กล่าวการตั้งค่าภายใน XMBC เพื่อควบคุมมันแน่นอนว่าจะเป็นทางออกที่ดีที่สุด อย่างไรก็ตามมันรอบคอบสำหรับฉันที่จะคาดหวังว่า OP ได้ทำการบ้านของเขา ยิ่งกว่านั้นหากการตั้งค่าดังกล่าวพร้อมใช้งานภายใน XMBC ฉันคิดว่ามีบางคนคิดขึ้นมาและโพสต์คำตอบของเขา ตอนนี้คำถามมีอายุ 7 วันแล้ว - ฉันไม่คิดว่าจะมีอยู่ใน XMBC ยังไงก็ตามในขณะที่คุณใช้ XMBC คุณสามารถตรวจสอบได้ไหมว่าสามารถทำได้หรือไม่ :)
Aditya

3
ฉันจะไม่เรียกมันว่าแฮ็ค ผู้คนใช้เชลล์สคริปต์เพื่อทำสิ่งเหล่านี้ตลอดเวลา คำตอบที่ยอดเยี่ยม +1
เซท

8

วิธีการแก้ปัญหาที่ง่ายมากคือคาเฟอีน Caffeine เป็น 'แอปพลิเคชันแถบสถานะที่สามารถป้องกันการเปิดใช้งานทั้งสกรีนเซฟเวอร์และโหมดประหยัดพลังงาน "พัก" ชั่วคราว

การเปิดใช้งานนั้นง่ายเหมือนการคลิกที่ตัวบ่งชี้แถบสถานะ แต่คุณยังสามารถตั้งค่าเพื่อที่จะปิดการใช้งานสกรีนเซฟเวอร์โดยอัตโนมัติเมื่อคุณเริ่ม xbmc ดูภาพหน้าจอด้านล่าง

ป้อนคำอธิบายรูปภาพที่นี่

หากคุณใช้ Gnome คุณสามารถติดตั้งส่วนขยาย gnome คาเฟอีนได้ หากไม่มีสำหรับ Ubuntu สูงถึง 15.04 (สดใส) คุณสามารถติดตั้งคาเฟอีนจาก Launchpad 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 คำตอบนั้นล้าสมัย ขอบคุณสำหรับ headsup แต่เนื่องจากคำตอบของฉันสามารถใช้การอัปเดตได้เช่นกัน;) ฉันเพิ่มคำแนะนำในการติดตั้งสำหรับ Ubuntu รุ่นใหม่กว่า
แกร์ฮาร์ดเบอร์เกอร์

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 ชั่วโมงทุกวัน แต่ฉันต้องการปิดการใช้งานสกรีนเซฟเวอร์เมื่อมีการเล่นวิดีโอในเครื่องเท่านั้น

นี่คือสิ่งที่ฉันมาด้วย: เปิดการสนับสนุน http และ JSON ใน XBMC จากนั้นวนรอบการร้องขอเพื่อตรวจสอบว่าผู้เล่นเปิดใช้งานหรือไม่ หากเป็นเช่นนั้นให้ใช้คำสั่ง xscreensaver -disable (คุณสามารถปรับเปลี่ยนสิ่งนี้ได้ตามสกรีนเซฟเวอร์ของคุณ) ถ้าไม่ทำอะไร การตรวจสอบทุก ๆ 50 วินาทีนั้นมีมากมายสำหรับฉัน

รหัส Python ที่นี่: http://sumnerhayes.com/software/


คำถามนี้เกี่ยวกับ XBMC ใน Ubuntu 12.10 ซึ่งมีข้อผิดพลาดที่ไม่ได้ปิดการใช้งานสกรีนเซฟเวอร์ขณะเล่นวิดีโอ ข้อผิดพลาดนี้ไม่มีอยู่ใน XBMC ใน Ubuntu รุ่นที่ใหม่กว่าดังนั้นฉันไม่คิดว่าวิธีแก้ปัญหาของคุณเป็นสิ่งจำเป็น XBMC ปิดการใช้งานหน้าจอขณะเล่นวิดีโอตามที่ควร
thomasrutter
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.