使用树莓派打造一个音乐播放器
買了個樹莓派3B+,裝好系統(tǒng)后灰落了好厚一層都不知道要干嘛。。。最近突發(fā)奇想:用樹莓派做一個音樂播放器,每天6:30-7:20自動播放英語聽力,強迫自己練習(xí)英語,也治治自己的懶床習(xí)慣,平時也可以用來聽聽歌。
準(zhǔn)備工作:
1.樹莓派一個,并且己安裝好linux系統(tǒng),并且己安裝好Python3環(huán)境;
2.音箱一個(AUX有線接口或藍(lán)牙音箱都行),連接到樹莓派上;
軟件環(huán)境搭建:
mtool是一個用python寫的音樂播放器,在gitee和github上開源,主要用命令行進(jìn)行控制,這個很適合我們這個需求。
下載地址:https://gitee.com/shadowlesswalker/mtool.git
首先我們在電腦上用ssh工具(我用的putty)登陸到樹莓派,不會的可以另行百度樹莓派ssh教程。輸入以下命令:
cd /usr
git clone https://gitee.com/shadowlesswalker/mtool.git mtool #下載mtool源代碼
cd mtool
ln -s -f /usr/mtool/mtoolctl /usr/bin/mtool #創(chuàng)建軟鏈接(快捷方式)
然后安裝mtool依賴包:pygame,configparser(有的話就不用安裝了)
sudo apt install python3-pygame
pip3 install configparser
至此,mtool就算安裝完成了。mtool是一個C/S(服務(wù)器/客戶端)模式的程序,服務(wù)器開啟后會監(jiān)聽UDP端口(默認(rèn)為127.0.0.1:6666),然后接受來自客戶端的命令去控制播放。
我再來設(shè)置一下服務(wù)器端的開機自啟動:
vim ~/.bashrc
在最后面添加命令:
nohup mtool --server start > /usr/mtool/log & #其中nohup與&用于后臺運行程序
配置音樂文件夾路徑
先來配置一下音樂文件夾的位置,打開/usr/mtool/mtool.conf,在里面自行修改:
[player] #這個節(jié)設(shè)置播放器參數(shù)
list = music #設(shè)置默認(rèn)的播放列表,列表名必須在后面的playlists節(jié)中出現(xiàn)
volume = 0.2 #默認(rèn)音量
port = 6666 #默認(rèn)UDP端口,用于服務(wù)器接受命令
index = 2 #當(dāng)前播放位置
next = next #默認(rèn)播放模式:next|loop|random 對應(yīng)順序播放|單曲循環(huán)|隨機播放
[playlists] #播放列表預(yù)設(shè)節(jié),可設(shè)置多個,格式為:列表名=文件夾路徑
music = music #播放列表名為music,路徑為./music
en-listen = /var/share/en-listen #我的英語聽力資源文件的路徑
開始使用mtool命令
source ~/.bashrc
或
nohup mtool --server start > /usr/mtool/log &
#先手動啟動服務(wù)端,雖然前面配置了開機自啟動,但也只能下次開機才能生效
mtool -c info #查看服務(wù)器狀態(tài),可用來測試服務(wù)器是否己啟動,成攻類似如下顯示:
mtool -c play #播放
mtool -c vol=0.5 #設(shè)置音量
mtool -c lists #查看可用的播放列表
mtool -c list #列出當(dāng)前播放列表中的音樂文件
mtool -c next=random|next|loop #設(shè)置播放順序
mtool -c playf=zui #切換為單曲循環(huán)(next=loop),并且播放文件名中包含zui的文件
基本的用法就這樣了,我們可以通過在電腦上控制樹莓派播放音樂了,但是電腦老開著也不好,況且躺在床上怎么辦呢?我們可以在手機上安裝ssh工具,比如JuiceSSH(推薦),阿里云app。
設(shè)置樹莓派定時播放
我們使用linux內(nèi)置的計劃任務(wù)命令crontab來設(shè)置定時播放功能。
說到定時任務(wù),那我們首先得確認(rèn)自己樹莓派的時間是準(zhǔn)確的。嘿嘿嘿。。。可惜,樹莓派的時間一般都是不準(zhǔn)確的。。。因為一般電腦在斷電后時鐘會由CMOS電池供電繼續(xù)跑,但是樹莓派斷電后時間就會丟失。即然時間都不準(zhǔn)確,又怎么能正常執(zhí)行定時任務(wù)呢。。。
所以我們首先解決時間問題-NTP(網(wǎng)絡(luò)時間同步)
dpkg-reconfigure tzdata #時區(qū)設(shè)置,配置文件在/etc/timezone,設(shè)置為中國上海時區(qū)
date #查看時間,確保我們的時區(qū)為中國時區(qū)
開啟NTP服務(wù)
apt install ntp
ntpdate ntp.ntsc.ac.cn #同步中國國家授時中心新(NTP服務(wù)器ntp.ntsc.ac.cn)
或者在/etc/ntp.conf中添加ntp服務(wù)器地址
重啟ntp服務(wù):
systemctl enable ntp #ntp開機自啟動
systemctl start ntp #啟動ntp服務(wù)
date #查看系統(tǒng)時間,應(yīng)該正確了
再來設(shè)置定時任務(wù):
先寫一個切換播放列表、改變音量、開時播放的腳本,用來被定時任務(wù)調(diào)用:
vim /usr/mtool/start-en-listen
腳本內(nèi)容很簡單:
_dir="/usr/mtool"
mtool -c playlist=en-listen #切換到英語聽力播放列表
mtool -c vol=1.0 #音量放到最大(嘿嘿嘿)
mtool -c next=random #設(shè)置隨機播放
mtool -c play #開始播放
接下來添加定時任務(wù)
crontab -e #將打開編輯器,在最后添加定時任務(wù):
30 6 * * * /usr/mtool/start-en-listen >> /usr/mtool/log.client #每天早上6:30開始播放
20 7 * * * mtool -c stop #每天早上7:20停止播放
終于。。。大功造成!!!!每天早上無法安心地睡懶覺啦啦啦!!!
當(dāng)然,我們還可以添加幾行代碼,每天早上6:30自動關(guān)閉ssh服務(wù),7:20再打開,這樣想睡懶覺時就無法從手機ssh端關(guān)閉樹莓派播放了,只能爬起來去拔電源嘿嘿嘿。。。。。
總結(jié)
以上是生活随笔為你收集整理的使用树莓派打造一个音乐播放器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: tcp/ip 拥塞控制、重传、丢包、优化
- 下一篇: 背刺比亚迪+长城 吉利新能源皮卡品牌定名