需求
冬天到啦,賴床癥又來了拯杠。掏婶。
我打算每天早上08:30,樹莓派開始播放音樂潭陪,順序如下:
- 08:30 先調(diào)整音量0-50(漸進(jìn)效果)播放一段輕音樂(整理成列表雄妥,隨機(jī)播放)
- 音樂結(jié)束后(大概五分鐘),播放一段起床語音(重復(fù)x3依溯,讓你不起床老厌,哈哈)
- 既然叫你起床了,那我就應(yīng)該來點(diǎn)振奮人心的music咯誓沸!dj響起來梅桩!
技術(shù)分析
通過上一篇【把閑置吃灰的樹莓派拿來做music player吧!】拜隧,我們已經(jīng)學(xué)會(huì)了如何在raspberry pi上播放音樂宿百,那么我們還需要進(jìn)一步了解軟件的用法,以達(dá)到上述需求洪添。
調(diào)整音量
因?yàn)槲覀兛偛豢赡苊看握{(diào)整音量都回到終端敲個(gè)命令然后上下鍵調(diào)整垦页。。
所以我們來認(rèn)識(shí)一個(gè)新的命令:amixer
這是一個(gè)調(diào)整音量的命令干奢,輸入-h
即可查看幫助痊焊。
我們?cè)谶@里需要它的功能:調(diào)整音量。所以其他就不多介紹了
1. 查看聲卡名稱
$ amixer scontrols
可以看到忿峻,這里是
PCM
薄啥,記下,待會(huì)用到
2. 命令調(diào)整音量
$ amixer set PCM 80%
提示:后邊跟的音量大小逛尚,經(jīng)測(cè)試在50%以上才能聽到垄惧。。 不知道是什么原因绰寞,后邊再研究到逊,我們不用太大(傷耳朵)一般80%左右適合了
好了铣口,調(diào)整音量這個(gè)技術(shù)點(diǎn)已經(jīng)搞定。實(shí)現(xiàn)也很簡(jiǎn)單觉壶,延時(shí)設(shè)置音量脑题,這樣就達(dá)到“漸進(jìn)”的效果了。
播放列表
是的铜靶,我們需要幾個(gè)播放列表叔遂,作用如下:
- 播放純音樂
- 播放我們錄制的起床聲音
- 播放后邊的high曲
經(jīng)過查詢mplayer
的手冊(cè),發(fā)現(xiàn)了幾個(gè)有用的命令:
-
-playlist
后邊指定一個(gè)播放列表文件旷坦,格式每行一個(gè)mp3文件路徑 -
--start
指定開始播放的時(shí)間(在跳過某些dj前的廣告掏熬。佑稠。) -
--shuffle
隨機(jī)播放列表文件
當(dāng)然秒梅,你也可以加上--list-options
參數(shù)查看全部支持的配置
開始實(shí)現(xiàn)
歸類文件
首先我們當(dāng)然是先把音樂文件下載到pi中啦!
我的目錄分類如下:
其實(shí)也就是幾個(gè)音樂文件舌胶,加上幾個(gè)播放列表文件而已
編寫腳本
不想多裝環(huán)境捆蜀,直接用shell編寫吧!
1. 調(diào)整音量腳本
功能:從60%開始每隔1s增加1%直到85%增加音量
#!/bin/bash
SOUND_NAME="PCM"
setVolume()
{
amixer set $SOUND_NAME $1%
}
for n in {60..85};do setVolume $n;sleep 1;done
我們存儲(chǔ)為scripts/set-volume-60-85.sh
2. 播放純音樂腳本
首先確保下載好純音樂和創(chuàng)建好播放列表幔嫂,我們辆它。。 隨機(jī)播放吧履恩!
#!/bin/bash
mplayer -playlist /home/pi/music/play-light.txt -shuffle
3. 播放起床錄音
這個(gè)可以自己錄制锰茉,也可以搜索素材,比如:
同樣切心,創(chuàng)建一個(gè)播放列表飒筑,可以不隨機(jī)播放:
#!/bin/bash
mplayer -playlist /home/pi/music/play-my.txt
4. DJ high曲
自己搜索吧:http://www.ik123.com/
同上創(chuàng)建腳本:
#!/bin/bash
mplayer -playlist /home/pi/music/play-dj.txt -shuffle
整合腳本
好了,上述的文件資源都創(chuàng)建好了绽昏,下一步就是創(chuàng)建任務(wù)协屡,把所有的腳本都聯(lián)合起來,做一個(gè)任務(wù)列表進(jìn)行順序播放即可:
30 08 * * * /home/pi/music/scripts/play-light.sh
30 08 * * * /home/pi/music/scripts/set-volume-60-85.sh
45 08 * * * /home/pi/music/scripts/play-my.sh
50 08 * * * /home/pi/music/scripts/play-dj.sh
解釋:
- 08:30全谤,播放一段輕音樂
- 并逐步增加音量
- 08:45肤晓,播放起床聲音
- 08:50,播放dj舞曲
時(shí)間自己調(diào)哈认然!
解決bug
當(dāng)然补憾,現(xiàn)在還沒完美,比如播放的時(shí)候卷员,得結(jié)束上一次播放的進(jìn)程盈匾。
所有我們?cè)?8:45的play-my.sh和08:50的play-dj.sh前加上結(jié)束之前進(jìn)程:
#!/bin/bash
killall mplayer
..之前腳本內(nèi)容