隨著現(xiàn)在科技的進(jìn)步與發(fā)展,智能設(shè)備已經(jīng)慢慢地普及到我們的生活中,從風(fēng)靡全球的諾基亞按鍵手機(jī)開始,再到目前發(fā)布的最新款iPhone13,現(xiàn)在人人都擁有自己的智能設(shè)備,那么你還記得自己的第一部智能設(shè)備是什么嗎?可能不少人和我的答案是一樣,第一臺(tái)智能設(shè)備是MP3音樂播放器。
MP3播放器其實(shí)就是一個(gè)只具有特定功能的小型電腦。在MP3播放器小小的機(jī)身里,擁有存儲(chǔ)器(存儲(chǔ)卡)、顯示器(LCD顯示屏)、中央處理器。MP3的中央處理器就和電腦的CPU功能是一樣的,等于播放器的“大腦”,用來接受用戶選擇的播放控制,并將當(dāng)前播放的歌曲信息顯示在液晶顯示屏上,然后向數(shù)據(jù)信號(hào)處理芯片發(fā)出指令,使其準(zhǔn)確地處理音頻信號(hào)(圖1)。
今天我們用掌控板來復(fù)刻一個(gè)傳統(tǒng)的MP3播放器,使用mPython作為編程軟件。
首先我們參考MP3播放器確定掌控板需要實(shí)現(xiàn)的基礎(chǔ)功能包括:播放、切換歌曲、加音量、減音量。當(dāng)然真正的MP3播放器還有歌曲列表、歌曲搜索等功能,因篇幅原因不在本次實(shí)例中實(shí)現(xiàn)。這四個(gè)功能正好可以利用掌控板下的Python中的四個(gè)觸控按鍵來控制。
確定了需要實(shí)現(xiàn)的基礎(chǔ)功能后,大家還需要思考一個(gè)問題:音樂從哪里來。一般情況下有兩種方法,一種是傳統(tǒng)MP3播放器的方式,從電腦上下載音樂后傳輸?shù)組P3存儲(chǔ)卡中使用;另一種方法是從網(wǎng)上通過資源鏈接的形式獲取,這個(gè)和目前手機(jī)音樂App的方式類似,歌曲只是臨時(shí)下載到本地播放。
本次試驗(yàn)我們使用第二種方法進(jìn)行音樂的獲取,我搜索到一個(gè)存有幾十首MP3地址的網(wǎng)頁,從中復(fù)制了一首歌的鏈接(http://webftp.bbs.hnol.net/
linm/Music2/2018/05/sdwlrmqg2CD/07.mp3)。為了保證掌控板能從網(wǎng)絡(luò)中獲取歌曲資源,首先要在電腦上測試我們復(fù)制的這個(gè)網(wǎng)址可用,還要保證掌控板可以正常連接到WiFi。所以代碼的第一行就是連接WiFi,這里就不再贅述(圖2)。
然后在掌控板的擴(kuò)展處添加上音頻安裝包方便接下來的操作。新增加四個(gè)變量:變量i表示播放的歌曲、變量music-name表示當(dāng)前歌曲的名稱、變量music-url表示歌曲的網(wǎng)絡(luò)地址、變量vioce代表著音量的條件。
初始條件下,當(dāng)前播放的歌曲是空所以設(shè)置為0,音量可以設(shè)置為60。在MP3播放器中,不可能只有一首歌曲,為了存儲(chǔ)大量的歌曲文件,我們可以新增兩個(gè)列表用于存放歌曲的網(wǎng)絡(luò)地址和歌曲的名稱,目前我只存放了兩首歌曲,你可以根據(jù)自己的喜好把獲取到的歌曲地址存入列表中(圖3)。
為了能在掌控板的屏幕中顯示出需要的信息,我自定義了一個(gè)函數(shù)“屏幕顯示”的功能模塊,在屏幕上顯示出當(dāng)前播放的歌曲名稱,以及MP3播放器的功能按鍵說明,A:切換歌曲;B:播放歌曲;P:增大音量; N:減小音量。注意掌控板顯示屏面積非常有限,一般只能顯示4行,任何時(shí)候都需要關(guān)注掌控板顯示畫面的實(shí)際效果(圖4)。
當(dāng)按下按鈕A鍵后,變量i的值增加1,代表著切換成下一首歌曲,當(dāng)變量i的值超出了我們的歌曲的總數(shù)后將變量i重新恢復(fù)設(shè)定為0,這樣可以實(shí)現(xiàn)歌曲的依次循環(huán)播放。按下B鍵后,音頻便停止當(dāng)前列表中播放的歌曲,當(dāng)觸摸P鍵后,音量增加5,當(dāng)觸摸N鍵后,音量減少5,做完程序后,大家可以運(yùn)行程序看看有沒有小時(shí)候MP3的味道(圖5)。
我們還可以添一塊便攜式的掌控板電池,將程序刷入至掌控板硬件后,通過電池供電便可以真正意義上做出一個(gè)精巧的MP3播放器了。