樂樂音樂 1.0 是一款基於 Java Swing 開發的本地音樂播放器,支援常見音頻格式播放、播放列表管理、歌詞顯示等核心功能,採用 MVC 架構分層,界面採用 Swing 組件構建,適合作為 Java GUI 開發進階練習項目。
javax.sound.sampled API 實現音頻解碼與播放控制(播放、暫停、停止、進度跳轉、音量調節)。com.lele.music
├── ui // Swing 視圖層:MainFrame, PlaylistPanel, LyricPanel, TrayIcon
├── player // 播放核心:AudioPlayer, PlaybackController, ProgressListener
├── model // 數據模型:Track, Playlist, LyricLine
├── service // 業務服務:MediaScanner, ID3Parser, LyricParser, SettingsManager
└── util // 工具類:TimeFormat, FileFilter, SwingUtils
使用 AudioInputStream 讀取音頻數據,通過 SourceDataLine 寫入聲卡緩衝區。播放進度通過已讀取幀數計算,註冊 LineListener 監聽 STOP/START 事件實現精準同步。
所有 UI 更新必須在 EDT (Event Dispatch Thread) 執行,使用 SwingUtilities.invokeLater() 或 SwingWorker 處理耗時任務(掃描、解析),避免界面凍結。
正則解析 LRC 時間標籤 \[(\d{2}):(\d{2})\.(\d{2,3})\],轉換為毫秒時間點。自定義 JList 渲染器,根據當前播放時間高亮對應行,平滑滾動。
# 編譯
javac -d out -sourcepath src src/com/lele/music/Main.java
# 打包可執行 JAR
jar cvfe LeleMusic.jar com.lele.music.Main -C out .
# 運行
java -jar LeleMusic.jar
樂樂音樂 1.0 (本地版) — 純 Java 打造的輕量級音樂體驗