使用樹莓派打造一個音樂播放器


買了個樹莓派3B+,裝好系統后灰落了好厚一層都不知道要干嘛。。。最近突發奇想:用樹莓派做一個音樂播放器,每天6:30-7:20自動播放英語聽力,強迫自己練習英語,也治治自己的懶床習慣,平時也可以用來聽聽歌。

准備工作:

1.樹莓派一個,並且己安裝好linux系統,並且己安裝好Python3環境;

2.音箱一個(AUX有線接口或藍牙音箱都行),連接到樹莓派上;

軟件環境搭建:

mtool是一個用python寫的音樂播放器,在gitee和github上開源,主要用命令行進行控制,這個很適合我們這個需求。

下載地址: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   #創建軟鏈接(快捷方式)

然后安裝mtool依賴包:pygame,configparser(有的話就不用安裝了)

sudo apt install python3-pygame

pip3 install configparser

至此,mtool就算安裝完成了。mtool是一個C/S(服務器/客戶端)模式的程序,服務器開啟后會監聽UDP端口(默認為127.0.0.1:6666),然后接受來自客戶端的命令去控制播放。

我再來設置一下服務器端的開機自啟動:

vim ~/.bashrc

在最后面添加命令:

nohup mtool --server start > /usr/mtool/log &        #其中nohup與&用於后台運行程序

配置音樂文件夾路徑

先來配置一下音樂文件夾的位置,打開/usr/mtool/mtool.conf,在里面自行修改:

[player]         #這個節設置播放器參數

list = music      #設置默認的播放列表,列表名必須在后面的playlists節中出現

volume = 0.2    #默認音量

port = 6666      #默認UDP端口,用於服務器接受命令

index = 2        #當前播放位置

next = next     #默認播放模式:next|loop|random 對應順序播放|單曲循環|隨機播放

[playlists]       #播放列表預設節,可設置多個,格式為:列表名=文件夾路徑

music = music        #播放列表名為music,路徑為./music

en-listen = /var/share/en-listen    #我的英語聽力資源文件的路徑

開始使用mtool命令

source  ~/.bashrc

nohup mtool --server start > /usr/mtool/log &

#先手動啟動服務端,雖然前面配置了開機自啟動,但也只能下次開機才能生效

mtool -c info   #查看服務器狀態,可用來測試服務器是否己啟動,成攻類似如下顯示:


 


mtool -c play  #播放

mtool -c vol=0.5   #設置音量

mtool -c lists  #查看可用的播放列表

mtool -c list     #列出當前播放列表中的音樂文件

mtool -c next=random|next|loop   #設置播放順序

mtool -c playf=zui      #切換為單曲循環(next=loop),並且播放文件名中包含zui的文件

基本的用法就這樣了,我們可以通過在電腦上控制樹莓派播放音樂了,但是電腦老開着也不好,況且躺在床上怎么辦呢?我們可以在手機上安裝ssh工具,比如JuiceSSH(推薦),阿里雲app。

設置樹莓派定時播放

我們使用linux內置的計划任務命令crontab來設置定時播放功能。

說到定時任務,那我們首先得確認自己樹莓派的時間是准確的。嘿嘿嘿。。。可惜,樹莓派的時間一般都是不准確的。。。因為一般電腦在斷電后時鍾會由CMOS電池供電繼續跑,但是樹莓派斷電后時間就會丟失。即然時間都不准確,又怎么能正常執行定時任務呢。。。

所以我們首先解決時間問題-NTP(網絡時間同步)

dpkg-reconfigure tzdata    #時區設置,配置文件在/etc/timezone,設置為中國上海時區

date    #查看時間,確保我們的時區為中國時區

開啟NTP服務

apt install ntp

ntpdate ntp.ntsc.ac.cn       #同步中國國家授時中心新(NTP服務器ntp.ntsc.ac.cn)

或者在/etc/ntp.conf中添加ntp服務器地址

重啟ntp服務:

systemctl enable ntp    #ntp開機自啟動

systemctl start ntp      #啟動ntp服務

date    #查看系統時間,應該正確了

再來設置定時任務:

先寫一個切換播放列表、改變音量、開時播放的腳本,用來被定時任務調用:

vim  /usr/mtool/start-en-listen

腳本內容很簡單:

_dir="/usr/mtool"

mtool -c playlist=en-listen    #切換到英語聽力播放列表

mtool -c vol=1.0            #音量放到最大(嘿嘿嘿)   

mtool -c next=random    #設置隨機播放

mtool -c play     #開始播放

接下來添加定時任務

crontab -e     #將打開編輯器,在最后添加定時任務:

30 6 * * * /usr/mtool/start-en-listen >> /usr/mtool/log.client       #每天早上6:30開始播放

20 7 * * * mtool -c stop                          #每天早上7:20停止播放

 

終於。。。大功造成!!!!每天早上無法安心地睡懶覺啦啦啦!!!

當然,我們還可以添加幾行代碼,每天早上6:30自動關閉ssh服務,7:20再打開,這樣想睡懶覺時就無法從手機ssh端關閉樹莓派播放了,只能爬起來去拔電源嘿嘿嘿。。。。。




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM