Java在多媒體處理方面的確優(yōu)勢不大,但是我們在程序中有些時(shí)候又需要一些音樂做為點(diǎn)綴,如果播放的音樂是wav等波形音頻文件,又挺大,所以背景音樂最好就是MIDI了,可是網(wǎng)上很多播放MIDI的教程都是簡單的幾句話的例子,并且沒有考慮資源的釋放問題,如果程序長久運(yùn)行的話,就會出現(xiàn)內(nèi)存越耗越多的情況,以至于最后拋出一個(gè)java.lang.OutOfMemoryError,整個(gè)程序就掛了。
在MIDI的播放中,一個(gè)類是比較重要的,那就是MidiSystem類,它負(fù)責(zé)整個(gè)MIDI播放設(shè)備等的管理,其實(shí)就是Seqencer,它就是一個(gè)MIDI播放設(shè)置,用于播放MIDI序列的,還有一個(gè)類叫Seqence,它就是MIDI的序列,MIDI的序列可以自己由程序生成,也可以從文件中或者URL中讀取。
下面是一個(gè)播放MIDI音樂功能實(shí)例:
