存有超大量的MIDI音樂文件,包括鋼琴,古典,鄉村,民間,電影,流行,各年代各平台游戲,等等。
之前的手機 TF 卡,貌似是假冒的閃迪卡,且不是性能很好的款式的仿冒貨。存儲一萬五千多首 MIDI 音樂文件,用自帶的音樂播放器打開,每次總是重新索引一遍,非常慢,而且音樂播放器APP有時會被清出內存,再打開時重新啟動的。
除了手機自帶的播放器APP,試了其他幾款音樂播放器APP,都不支持播放 MIDI 格式。如 VLC 安卓版,按介紹是支持的,實際不支持,對此沒有搜索到相關的問題。
遂想自己實現一個 MIDI 文件播放器的安卓 APP,主要為目錄瀏覽、播放,避免每次啟動漫長的文件索引和大的內存消耗,使用 Android SDK 的 MediaPlayer 播放 MIDI 文件。想法很久,未動手。
在谷歌安卓開發官網看到 MediaPlayer 的“服務器 / 客戶端”模式的例子,有 Github 上的對應項目,暫先克隆了下來。
其它應有的功能,包括下拉通知欄的播放UI;鎖屏狀態的播放UI;耳機插入、拔出時暫停播放;當其它 APP 播放聲音、接聽電話時暫停播放,之后恢復播放;響應耳機線按鈕等設備;保存文件索引,文件名,大小,修改時間,時長,編碼格式,標題,作者,專輯等,避免每次完全重新索引;長按圖標出現的小菜單。
使用 Android SDK 的 MediaPlayer 的話,大概是無法更換 soundfont 的。若有 Android 可用的類似 fluidsynth 的庫就方便了。