我用ALSA.我想在播放声音时阻止PC暂停.我使用这个bash代码来运行一个屏幕锁定器和一个suspend命令:
# Run a screen locker.
#xautolock -time 5 -locker slimlock &
# Run suspend
#xautolock -time 6 -locker 'systemctl suspend' &
Run Code Online (Sandbox Code Playgroud)
我想检测播放的声音或视频,并阻止PC暂停.例如伪代码:
if (video is not played)
{
run a screen locker
}
if (sound is not played and video is not played)
{
run suspend command
}
Run Code Online (Sandbox Code Playgroud)
如何使用命令行实用程序检测声音或视频?
我有以下输出:
$ cat /sys/class/power_supply/BAT0/uevent
POWER_SUPPLY_NAME=BAT0
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_STATUS=Charging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=10800000
POWER_SUPPLY_VOLTAGE_NOW=12178000
POWER_SUPPLY_CURRENT_NOW=904000
POWER_SUPPLY_CHARGE_FULL_DESIGN=4042000
POWER_SUPPLY_CHARGE_FULL=4042000
POWER_SUPPLY_CHARGE_NOW=3916000
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=HP
POWER_SUPPLY_SERIAL_NUMBER=
Run Code Online (Sandbox Code Playgroud)
我想计算直到电池充电结束为止的剩余时间。我可以这样做:(POWER_SUPPLY_CHARGE_FULL - POWER_SUPPLY_CHARGE_NOW)/ POWER_SUPPLY_CURRENT_NOW 吗?对于此输出,剩余时间将为: (4042000-3916000) / 904000 = .13938053097345132743 一小时或 8 分钟。这是计算充电结束剩余时间的正确公式吗?
例如,我想读取一个只包含整数的文件,并使用函数中的这些整数执行某些操作:
getIntFromFile :: () -> Int
getIntFromFile _ = do
h <- openFile "/tmp/file" ReadMode
str <- hGetLine h
let x = read str :: Int
str <- hGetLine h
let y = read str :: Int
hClose h
x + y
Run Code Online (Sandbox Code Playgroud)
当我将包含此函数的文件加载到ghci时,我得到输出
Prelude System.IO> :l graphBat.hs
[1 of 1] Compiling Plugins.GraphBat ( graphBat.hs, interpreted )
graphBat.hs:77:22:
Couldn't match type ‘IO b0’ with ‘() -> Int’
Expected type: IO Handle -> (Handle -> IO b0) -> () -> Int
Actual …Run Code Online (Sandbox Code Playgroud)