📄 sound.java
字号:
import java.io.IOException;import java.io.InputStream;import javax.microedition.media.Manager;import javax.microedition.media.MediaException;import javax.microedition.media.Player;public class Sound { private Player userExplodePlayer; private Player enemyExplodePlayer; private Player kingExplodePlayer; private Player petExplodePlayer; private Player bulletExplodePlayer; private Player metalPlayer; private Player curBackPlayer; private Player back1Player; private Player back2Player; private Player back3Player; private Player pausePlayer; private Player resumePlayer; private Player gameoverPlayer; private Player winPlayer; private Player eatPlayer; private Player eatTankPlayer; public boolean valid = true; public static Sound instance = new Sound(); private Sound(){ userExplodePlayer = createPlayer("/sound/enemyExplode.wav", "audio/x-wav"); enemyExplodePlayer= createPlayer("/sound/enemyExplode.wav", "audio/x-wav"); kingExplodePlayer= createPlayer("/sound/enemyExplode.wav", "audio/x-wav"); petExplodePlayer= createPlayer("/sound/petExplode.mid", "audio/midi"); bulletExplodePlayer= createPlayer("/sound/fire.mid", "audio/midi"); metalPlayer= createPlayer("/sound/metal.mid", "audio/midi"); back1Player= createPlayer("/sound/back1.mid", "audio/midi"); if(back1Player!=null)back1Player.setLoopCount(-1); back2Player= createPlayer("/sound/back2.mid", "audio/midi"); if(back2Player!=null)back2Player.setLoopCount(-1); back3Player= createPlayer("/sound/back3.mid", "audio/midi"); if(back3Player!=null)back3Player.setLoopCount(-1); curBackPlayer = back3Player;//默认再第3首// pausePlayer= createPlayer("/flower.mid", "audio/x-wav");// resumePlayer= createPlayer("/flower.mid", "audio/x-wav"); gameoverPlayer= createPlayer("/sound/gameover.mid", "audio/midi"); winPlayer= createPlayer("/sound/win.mid", "audio/midi"); eatPlayer= createPlayer("/sound/eat.mid", "audio/midi"); eatTankPlayer= createPlayer("/sound/eatTank.mid", "audio/midi"); } private Player createPlayer(String filename, String format) { Player p = null; try { InputStream is = getClass().getResourceAsStream(filename); p = Manager.createPlayer(is, format); p.prefetch(); //p.setLoopCount(1); } catch (IOException ex) { ex.printStackTrace(); } catch (MediaException ex) { ex.printStackTrace(); } return p; } //调成静音(valid 设置时,不用back1Player.stop 游戏时 要stop)// public void unValid(){// valid = false;// try {// if(back1Player != null)back1Player.stop();// } catch (MediaException ex) {// ex.printStackTrace();// }// } //调成有音(valid 设置时,不用back1Player() 游戏时 要back1Player()) public void setMusic1(int music){//设置时 switch(music){ case 0:this.valid = false; break; case 1:this.valid = true; curBackPlayer = back1Player; break; case 2:this.valid = true; curBackPlayer = back2Player; break; case 3:this.valid = true; curBackPlayer = back3Player; break; } } public void setMusic2(int music){//游戏中 switch(music){ case 0:this.valid = false; this.stopBack(); break; case 1:this.valid = true; this.stopBack(); curBackPlayer = back1Player; this.resumeBack(); break; case 2:this.valid = true; this.stopBack(); curBackPlayer = back2Player; this.resumeBack(); break; case 3:this.valid = true; this.stopBack(); curBackPlayer = back3Player; this.resumeBack(); break; } } public void enemyExplodePlayer() { if(valid == false)return;//静音 startPlayer(enemyExplodePlayer); } public void gameoverPlayer() { if(valid == false)return;//静音 startPlayer(gameoverPlayer); } public void winPlayer() { if(valid == false)return;//静音 startPlayer(winPlayer); } public void kingExplodePlayer() { if(valid == false)return;//静音 startPlayer(kingExplodePlayer); } public void bulletExplodePlayer() { if(valid == false)return;//静音 startPlayer(bulletExplodePlayer); } public void metalPlayer() { if(valid == false)return;//静音 startPlayer(metalPlayer); } public void pausePlayer() { if(valid == false)return;//静音 startPlayer(pausePlayer); } public void petExplodePlayer() { if(valid == false)return;//静音 startPlayer(petExplodePlayer); } public void resumePlayer() { if(valid == false)return;//静音 startPlayer(resumePlayer); } public void userExplodePlayer() { if(valid == false)return;//静音 startPlayer(userExplodePlayer); } public void eatPlayer() { if(valid == false)return;//静音 startPlayer(eatPlayer); } public void eatTankPlayer() { if(valid == false)return;//静音 startPlayer(eatTankPlayer); } private void startPlayer(Player p) { if (p != null) { try { p.stop(); p.setMediaTime(0L); p.start(); } catch (MediaException me) { System.out.println(me); } } } //暂停 恢复 调用 public void stopBack() { if (curBackPlayer != null) { try { curBackPlayer.stop(); } catch (MediaException me) { System.out.println(me); } } } public void resumeBack() { if(valid == false){return;}//静音 if (curBackPlayer != null) { try { curBackPlayer.start(); } catch (MediaException me) { System.out.println(me); } } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -