如果是簡(jiǎn)單的音樂(lè),編樂(lè)譜推蜂鳴器就可以;如果是mp3/wav之類(lèi)的音樂(lè),需要芯片自帶解碼模塊,或者使用外部解碼芯片,還需要dac將聲音推出來(lái)。
成都創(chuàng)新互聯(lián)公司專(zhuān)注于欽州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供欽州營(yíng)銷(xiāo)型網(wǎng)站建設(shè),欽州網(wǎng)站制作、欽州網(wǎng)頁(yè)設(shè)計(jì)、欽州網(wǎng)站官網(wǎng)定制、微信小程序服務(wù),打造欽州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供欽州網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。
準(zhǔn)備好單片機(jī)、音樂(lè)模塊和開(kāi)關(guān)。 將音樂(lè)模塊和單片機(jī)連接,一般是通過(guò)單片機(jī)的I/O口和音樂(lè)模塊的控制端口相連。 將開(kāi)關(guān)與單片機(jī)連接,一般是將開(kāi)關(guān)的兩個(gè)端口分別連接到單片機(jī)的兩個(gè)I/O口上。
我知道有幾種方法。一是用單片機(jī)通過(guò)數(shù)模轉(zhuǎn)換的方法播放音樂(lè)文件。如WAV格式文件。但可能要涉及WAV格式和讀取外部數(shù)據(jù)(如SD卡)等問(wèn)題。二是利用MP3播放專(zhuān)用單片機(jī),如AT89C51SND1C來(lái)播放mp3格式的文件。
發(fā)音原理:播放一段音樂(lè)需要的是兩個(gè)元素,一個(gè)是音調(diào),另一個(gè)是音符。音符的發(fā)音主要靠不同的音頻脈沖。例如:利用單片機(jī)的內(nèi)部定時(shí)器/計(jì)數(shù)器0,使其工作在模式1,定時(shí)中斷,然后控制P7引腳的輸出音樂(lè)。
1、解碼音樂(lè)文件:將音樂(lè)文件進(jìn)行解碼,生成音頻數(shù)據(jù),可以通過(guò)Java的開(kāi)源音頻處理庫(kù),如JLayer或JavaFX中的MediaPlayer等來(lái)實(shí)現(xiàn)。播放音樂(lè):將解碼后的音頻數(shù)據(jù)通過(guò)Java的音頻輸出流寫(xiě)入音頻設(shè)備,播放音樂(lè)。
2、因此,一般我們都在applet的stop( )方法中添上停止播放的代碼。例如,下面這段程序?qū)⒉シ艃啥温曇簦欢问沁B續(xù)播放的背景音樂(lè),另一段是講話(huà)錄音。
3、使用play()方法進(jìn)行播放,loop()方法循環(huán)播放,stop()方法停止播放。
使用play()方法進(jìn)行播放,loop()方法循環(huán)播放,stop()方法停止播放。
就可以播放音樂(lè),除了可以播放.wav格式的音樂(lè),還可以播放.au格式的音樂(lè)。另外,如果你不希望音樂(lè)循環(huán)播放,你可以去掉audioloop();這一語(yǔ)句。
因此,一般我們都在applet的stop( )方法中添上停止播放的代碼。例如,下面這段程序?qū)⒉シ艃啥温曇?,一段是連續(xù)播放的背景音樂(lè),另一段是講話(huà)錄音。
僅限于JavaApplication,容易報(bào)錯(cuò),空指針異常,或者是流異常,不推薦。