📄 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 + -