![Conky 的 DeaDBeeF 进度条(cipricus 代码)](https://linux22.com/image/113173/Conky%20%E7%9A%84%20DeaDBeeF%20%E8%BF%9B%E5%BA%A6%E6%9D%A1%EF%BC%88cipricus%20%E4%BB%A3%E7%A0%81%EF%BC%89.png)
你好,cipricus 或可以提供帮助的人。
我刚刚开始使用deadbeef conky 进度条通过 西普里库斯
我必须说非常好的脚本,但是...我遇到了一个问题,如果 deadbeef 停止,进度条会显示一些数字。正如您可以在下图中注意到的那样。
如果玩家正在运行...关于进度条,一切都显示正确。您是否有任何建议或解决方案可以使进度条即使在播放器停止时也可见?
再次感谢!
答案1
我没有deadbeef
要测试的程序,但似乎当它停止时,该--nowplaying
选项将返回字符串“nothing”。 awk 脚本需要两次,因此它应该返回除零错误。但是,-2147483647
在这种情况下,您的 awk 将返回。
您可以尝试将 awk 脚本编辑为以下内容,以通过检查字符串并检查末尾是否除以零来应对:
#!/bin/bash
deadbeef --nowplaying "%e %l" |
awk '
/nothing/{ print "0";exit }
{ n = split("::" $1,t,":")
elapsed = (t[n-2]*60+t[n-1])*60+t[n]
n = split("::" $2,t,":")
total = (t[n-2]*60+t[n-1])*60+t[n]
if(total==0)total = 1
printf "%d\n",elapsed*100/total
}'