⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 music.java

📁 简单的用Java做的小游戏主要是用了自己的框架来
💻 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 + -