?? music.java
字號:
package assistant;
import java.io.FileInputStream;
/**
* <p>
* Copyright (C),2008,5,13
* 此類為音樂類,用于播放各種音樂
* @author : lovo
*
* @version 1.00 2008/3/10
*/
public class Music extends Thread {
/** 背景音樂文件地址 */
public final static String PLAY_BACKGROUND = "audio/background.wav";
/** BOSS音樂文件地址 */
public final static String PLAY_BOSS = "audio/boss.mid";
/** 片頭動畫音樂文件地址 */
public final static String PLAY_STARTCARTOON = "audio/startCartoonMusic.wav";
/** 片頭動畫音樂文件地址 */
public final static String PLAY_GAMEWIN = "audio/flowMe.wav";
/**勝利音樂 */
public final static String PLAY_WIN = "audio/win.mid";
/**撿到道具 */
public final static String PLAY_PROP = "audio/prop.wav";
/**菜單音樂*/
public final static String PLAY_MENU = "audio/menu.wav";
/**失敗音樂*/
public final static String PLAY_LOSE = "audio/lose.mid";
/**扔出箱子音樂*/
public final static String PLAY_CHUCK = "audio/chuck.wav";
/**扔出箱子音樂*/
public final static String PLAY_HITENEMY = "audio/hitEnemy.wav";
/** 循環音樂文件地址 */
private String musicFile;
/** 音樂播放間隔時間 */
private long time;
/** 申明循環音頻流對象 */
private sun.audio.AudioStream play_Loopmusic;
/** 是否播放 */
private boolean isPlay = true;
/** 申明單音音頻流對象 */
private static sun.audio.AudioStream play_music;
/**循環文件流*/
private FileInputStream loopFin;
/**
* 構造方法
* @param musicFile 循環音樂文件路徑
*/
public Music(String musicFile) {
this.musicFile = musicFile;
if(Music.PLAY_BACKGROUND.equals(musicFile)){
this.time = 71000;//背景音樂
}
else{
this.time = 47000;//BOSS音樂
}
this.start();// 啟動線程
}
/**
* playSingleMusic
* 播放單音音頻
*
* @param musicFile 單音音頻文件路徑
*/
public static void playSingleMusic(String musicFile) {
try {
FileInputStream singleFin = new FileInputStream(musicFile);//創建文件讀入流
play_music = new sun.audio.AudioStream(singleFin);//創建音頻流
sun.audio.AudioPlayer.player.start(play_music);// 播放音樂
} catch (Exception e) {
System.out.println(e);
}
}
/**
* Method: run 覆蓋線程run方法
* 播放循環音頻
*/
public void run() {
while (isPlay) {/* 控制音樂循環播放 */
try {
loopFin = new FileInputStream(this.musicFile);
play_Loopmusic = new sun.audio.AudioStream(loopFin);
sun.audio.AudioPlayer.player.start(play_Loopmusic);// 播放音樂
Thread.sleep(time);// 線程休眠
} catch (Exception e) {
System.out.println(e);
}
}
}
/**
* Method: stopMusic
* 停止播放循環音頻
*
*/
public void stopLoopMusic() {
sun.audio.AudioPlayer.player.stop(play_Loopmusic);
isPlay = false;
}
/**
* stopSingleMusic
* 停止播放單音音頻
*
*/
public static void stopSingleMusic() {
sun.audio.AudioPlayer.player.stop(play_music);
}
public static void main(String[] args) {
// Music.playSingleMusic("audio/win.mid");
Music.playSingleMusic(Music.PLAY_BOSS);
// Music music=new Music(Music.PLAY_BACKGROUND);
//
//
try {
Thread.sleep(3000);
Music.stopSingleMusic();
} catch (InterruptedException e) {
// TODO 自動生成 catch 塊
e.printStackTrace();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -