四川科技职业学院毕业设计(论文)
第 18 页
}
5.1.3 退出功能实现
//在点击时间监听中判断是否点击的退出菜单,然后判断歌曲是否关闭,没有关闭则先关闭歌曲再销毁界面退出程序。
public void actionPerformed(ActionEvent e) {
String action = e.getActionCommand(); if (\添加音乐文件\ mini.openMusicFile();
} else if (\添加音乐文件夹\ mini.openMusicFolder(); } else if (\退 出\ if (player != null) { player.close(); player = null; }
mini.dispose();
Config.getInstance().saveConfig(); RightPanel.getInstance().savePlayList(); System.exit(0); }
5.2 播放菜单详细设计
播放菜单主要包括:播放/暂停,停止,音乐魔方,播放模式,歌词背景功能:如图5.2
四川科技职业学院毕业设计(论文)
第 19 页
图5.2
5.2.1 播放/暂停功能实现
/**
* 开始播放音乐 */
public static void start() {
if (player != null && !noCanPlaySong()) {
player.getGainControl().setLevel(soundSlider.getValue() / 100.0F); setSoundState(getSoundState()); player.start(); //进度条更新
SliderUpdateThread.initThread(); SliderUpdateThread.getThread().start(); SliderUpdateThread.resume();
player.addControllerListener(SongControlListener.getInstance()); playerState = PlayerState.PLAY;
psButton.setIcon(new IconTool(\ psButton.setIconPath(\
songNameLabel.setText(currentSong.getSongName()); int index = defaultSongInfo.indexOf(currentSong);
四川科技职业学院毕业设计(论文)
第 20 页
defaultSongList.setSelectedIndex(index); LRCParse.getInstance().LoadLRC(); LRCLabel.getInstance().refresh(); PlayerInfoLabel.getInstance().refresh(); } }
/**
* 暂停音乐函数 */
public static void pause() { if (player != null) {
player.stop();
playerState = PlayerState.PAUSE;
psButton.setIcon(new IconTool(\ psButton.setIconPath(\ PlayerInfoLabel.getInstance().refresh(); } }
//在时间监听中判断是否点击播放/暂停按钮,并调用相应方法播放,如果当前状态为播放就暂停音乐,如果状态为暂停或停止就播放音乐。
public void actionPerformed(ActionEvent e) { String action = e.getActionCommand(); if (\添加音乐文件\ mini.openMusicFile();
} else if (\添加音乐文件夹\ mini.openMusicFolder(); } else if (\退 出\ if (player != null) {
四川科技职业学院毕业设计(论文)
第 21 页
player.close(); player = null; }
mini.dispose();
Config.getInstance().saveConfig(); RightPanel.getInstance().savePlayList(); System.exit(0);
} else if (\播放/暂停\
PlayerState.PLAY) {
MusicPlayer.pause();
} else if (\播放/暂停\PlayerState.PAUSE) {
MusicPlayer.start();
} else if (\播放/暂停\PlayerState.UNREALIZED) {
MusicPlayer.initPlayer(null); MusicPlayer.start(); }
5.2.2 停止功能实现
/**
* 停止播放 */
public static void stop() { if (player != null) {
playerState = PlayerState.UNREALIZED;
psButton.setIcon(new IconTool(\ psButton.setIconPath(\ SliderUpdateThread.pause();
四川科技职业学院毕业设计(论文)
第 22 页
timeSlider.setValue(0); timeLabel.setText(\
FormatUtils.formatTime(player.getDuration().getSeconds()));
player.close();
PlayerInfoLabel.getInstance().refresh(); } }
//判断是否点击停止菜单,并调用stop();方法 public void actionPerformed(ActionEvent e) { String action = e.getActionCommand(); if (\添加音乐文件\ mini.openMusicFile(); }
else if (\停 止 \ MusicPlayer.stop(); } }
5.2.3 音乐魔方实现
音乐魔方只要是主界面的一个迷你模式,能够实现播放/暂停,快进/快退,退出功能如图:5.2.3。