当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 求:音量自动调节程序
帖子发表于 : 2015-10-04 12:35 
头像

注册: 2009-05-29 10:59
帖子: 62
地址: 上海·青浦·重固
送出感谢: 1
接收感谢: 0 次
昨晚睡前突然冒出一个想法,关于如何智能控制音乐播放的音量。

###设计出发点
平时播放音乐时,总是要不时控制音量,然而到了夜深人静的时候,音量要不时手动控制很麻烦。这样一来,常常忘记把声音调低,以致于影响其他人的生活。所以准备用shell脚本写个程序,然而咱没那能力。首先awk不会用,循环之类的虽然知道,但是不会写。。。

###程序大致功能
1.用awk或类似工具获取当前音量a;
2.如果a>60,那么执行音量调低1%;
3.sleep 1s;
4.连续执行上述5个循环;
5.每晚21点到23点,没半小时执行一次;
6.23点停止mpd播放;
7.每天7天重启播放,音量重置至85%。
***原本还想添加时间的判断步骤,比如9点在75-90音量之间,10点65-80之间。不过那样更难写了。

###疑问
1.我是写个daemon好呢,还是添加crontab呢?
2.若是只用crontab控制音量的话,倒也能类似实现,不过那样从程序设计的角度看起来,极其丑陋吧。
3.既然现在都讲情怀,大家说说好点的方案吧。


_________________
深度潜水者
G+:https://www.google.com/+MosAutif


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 求:音量自动调节程序
帖子发表于 : 2015-10-04 15:52 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
amixer提供一大堆的alsa访问接口,若没有特殊需求的话,其实直接用shell写就可以了,反正当前音量也只是一个数字而已,处理起来你想怎么弄都行,这个一点都不麻烦,高级点的话,可以利用事件触发机制,再编写对应的配置文件规则,后者开发时间可能长一点,但用配置文件去的维护,比直接改代码要简单得多,说不定代码写完后,你都不知道这东西是谁写的了。


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 求:音量自动调节程序
帖子发表于 : 2015-10-04 23:15 
头像

注册: 2009-05-29 10:59
帖子: 62
地址: 上海·青浦·重固
送出感谢: 1
接收感谢: 0 次
其实自己完全不会写啊!
然后参照着http://wiki.ubuntu.com.cn/Shell%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80#while.2Ffor_.E5.BE.AA.E7.8E.AF丑陋得写了,然而无法运行。

#!/bin/bash
vol="amixer get PCM | grep Mono:|awk -F '[' '{print $2}'|awk -F '%' '{print $1}'"
i=5
while (i>0); do
if vol>60; then
vol--
amixer set PCM "vol"%
sleep 1
fi
i--
done


_________________
深度潜水者
G+:https://www.google.com/+MosAutif


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 求:音量自动调节程序
帖子发表于 : 2015-10-05 10:54 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
代码:
#!/bin/bash
nvol=$(amixer get Master |sed -n '0,/Front \w\+:/ s/^[^\[]\+\[\(\w*\).*/\1/g'p)
nhour=$(date +%H)

if [ ${nvol} -gt 60 -a ${nhour} -lt 21 ];then
  nvol=$(amixer set Master 1%-)
  sleep 1
elif [ ${nhour} -lt 23 ];then
  mpd stop
fi

大概就这意思吧 :em01


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 求:音量自动调节程序
帖子发表于 : 2015-10-07 15:08 
头像

注册: 2009-05-29 10:59
帖子: 62
地址: 上海·青浦·重固
送出感谢: 1
接收感谢: 0 次
哇,多谢啊,这几天也稍微看了些shell编程,多少知道了些,然而自己还是搞不定。


_________________
深度潜水者
G+:https://www.google.com/+MosAutif


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 求:音量自动调节程序
帖子发表于 : 2015-10-08 13:43 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
其实shell不难的,判断和循环也就那几条规则,其它大部分都只是命令而已。 :Adore


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译