재생하는 동안 화면 보호기가 시작되지 않도록 mplayer에 지시

재생하는 동안 화면 보호기가 시작되지 않도록 mplayer에 지시

mplayer에 하트비트 설정이 있다는 건 알지만 그것이 무엇인지 기억이 나지 않습니다. 누군가 말해 줄 수 있나요?

잘 작동했지만 기본값이 아닌 또 다른 성가신 문제

답변1

mplayer30초마다 명령을 실행하도록 전환할 수 있지만 -heartbeat-cmd매뉴얼 페이지에는 다음과 같이 명시되어 있습니다.

올바른 X API를 지원하지 않는 화면 보호기를 비활성화하기 위해 "남용"될 수 있습니다.

화면 보호기를 비활성화하는 실제 스위치는 -stop-xscreensaver먼저 시도해야 합니다.

답변2

mplayer -stop-xscreensaver나에게는 작동하지 않습니다(Debian wheezy; xscreensaver=5.15-3, xfce4=4.8.0.3, mplayer=2:1.0~rc4.dfsg1+svn34540-1+b2) - 화면 보호기는 영화를 보는 동안 계속 켜져 있습니다. 나는 화면 보호기 억제 도구 xscreensaver-inhibit와 mplayer 래퍼를 작성했습니다 play. xscreensaver-inhibit유튜브 등 다른 용도로도 유용하게 사용할 수 있어서 패널에 바로가기를 넣어두었습니다.

$HOME/bin/xscreensaver-inhibit다음과 같이:

#!/bin/bash
usage () {
    echo "usage: $0 [on|off]"
    echo '    Turns screensaver inhibition on or off.'
    echo '    default: toggle on/off'
    exit 1;
}

if [ -n "$1" ]  ; then
    [ "$1" = "on" -o "$1" = "off" ] || usage
fi

inhibit () {
    while [ -f "$lock" ] ; do
        # echo "$lock exists"
# UPDATE Dec 2018 this command seems to have stopped working after upgrading to Debian Stretch.
        # DISPLAY=:0 xdg-screensaver reset
# Replaced with this command which is working for me,
# though if you do not use xscreensaver you might need something else.
        DISPLAY=:0 xscreensaver-command -deactivate
        sleep 50
    done
    # echo "$lock is gone"
}

lock="/tmp/xsi.lock"

if [ -e "$lock" ] ; then
    echo 'Screensaver currently inhibited.'
    on='on'
else 
    echo 'Screensaver operating normally.'
    on=''
fi

if [ "$1" = "on" ] ; then
    if [ -n "$on" ] ; then
        echo 'Starting screensaver inhibitor anyway.'
    else 
        echo 'Screensaver inhibitor started.'
    fi
    touch "$lock" && inhibit &
fi

if [ "$1" = "off" ] ; then
    if [ -n "$on" ] ; then
        echo 'Screensaver inhibitor(s) stopped.'
    else 
        echo 'Perhaps the screensaver daemon is not running or another program is inhibiting it.'
    fi
    rm -f "$lock"
fi

if [ ! -n "$1" ] ; then
    if [ -n "$on" ] ; then
        echo 'Screensaver inhibitor(s) stopped.'
        rm -f "$lock"
    else 
        echo 'Screensaver inhibitor started.'
        touch "$lock" && inhibit &
    fi
fi

$HOME/bin/play다음과 같이:

#!/bin/sh

xscreensaver-inhibit on

DISPLAY=:0 mplayer -fs "$@"

xscreensaver-inhibit off

DISPLAY=:0SSH로 로그인해도 로컬 액티브 모니터에서 영화가 재생되도록 추가했습니다 . play또한 내 파일 관리자의 모든 동영상 파일에 대한 기본 처리기입니다.

설치한 경우 sox다른 것을 호출해야 할 수도 있습니다./usr/bin/playsoxplay

화면 보호기가 중단되는 것을 원하지 않는 다른 전체 화면 응용 프로그램에 대해 유사한 래퍼를 작성할 수 있습니다.

xscreensaver-inhibit제가 시도한 모든 데스크탑 환경, Linux 및 화면 보호기에서 작동합니다. 그것을 얻으면 xdg-screensaver: command not found실행하십시오 apt-get install xdg-utils.

2018년 12월 업데이트에서 기본 명령이 변경되었습니다 xscreensaver-inhibit. - 모든 DE, Linux, 화면 보호기에서는 테스트 xdg-screensaver되지 않았습니다 . xscreensaver-command청소년MMV

답변3

나한테는 그래--stop-screensaver

--stop-xscreensaver를 사용하면 mplayer가 다음과 같이 경고합니다.--stop-xscreensaver 옵션은 --stop-screensaver로 대체되었으며 향후 제거될 수 있습니다.

데비안 및 mpv 0.23.0 (C) 2000-2016 mpv/MPlayer/mplayer2 프로젝트

관련 정보