📄 sound.java
字号:
package login;
import java.applet.AudioClip;
import java.net.URL;
/**
* 这个类实现了游戏中的声音控制,由两个构造方法控制两种声音的发生.
*
* @author : 李强,何明,何晓飞
* @version : 3.0
*
*/
public class Sound {
/* 记录在构造方法Sound(int i)中根据不同的参数产生的不同文件定位 */
private URL url;
/* 记录在构造方法Sound(int i)中生成AudioClip对象,以便对它进行控制 */
private AudioClip sound1;
/* 记录在构造方法Sound(String path)中生成AudioClip对象,以便对它进行控制 */
private AudioClip sound2;
/**
* Sound (构造函数)生成点击声音和消去的声音
*
* @param i
* 可以为1或2,为1时生成点击声音,为2时生成消去的声音
*
*/
public Sound(int i) {
try {
if (i == 1) {// 判断参数,参数为1时定位声音文件为点击的声音文件
url = getClass().getResource("/sound/click.wav");
} else if (i == 2) {// 判断参数,参数为2时定位声音文件为消去的声音文件
url = getClass().getResource("/sound/delete.wav");
}
else if (i == 3) {// 判断参数,参数为3时定位声音文件为过关的声音文件
url = getClass().getResource("/sound/pass.wav");
}
sound1 = java.applet.Applet.newAudioClip(url);/* 产生一个AudioClip对象,以便对它进行控制 */
} catch (Exception e) {
System.out.print("读取音乐错误1!");
e.printStackTrace();
}
}
/**
* Sound (构造函数)生成背景音乐
*
* @param path
* 背景音乐文件的路径
*
*/
public Sound(String path) {
try {
URL u = getClass().getResource("/sound/" + path);/* 定位声音文件为参数指定的声音文件 */
sound2 = java.applet.Applet.newAudioClip(u);/* 产生一个AudioClip对象,以便对它进行控制 */
} catch (Exception e) {
System.out.print("读取音乐错误2!");
e.printStackTrace();
}
}
/**
* 播放构造方法中生成的AudioClip对象
*
* @param i
* 可以为1或2,为1时播放构造方法Sound(int i)中生成的AudioClip对象,
* 为2时循环播放构造方法Sound(String path)中生成的AudioClip对象。
*
*/
public void play(int i) {
if (i == 1) {
sound1.play();// 参数为1,播放构造方法Sound(int i)中生成的AudioClip对象
} else if (i == 2) {
sound2.loop();// 参数 为2循环播放构造方法Sound(String path)中生成的AudioClip对象
}
}
/**
* 停止播放构造方法Sound(String path)中生成的AudioClip对象
*/
public void stop() {
sound2.stop();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -