Итак, я делаю игру, и музыка меняется, когда вы находитесь в разных регионах или если есть прерывание, как с ИИ.
Итак, я ТОЛЬКО научился, как сделать так, чтобы музыка отображалась в моей программе, и теперь я пытаюсь остановить ее, но я не знаю, как это сделать. Ниже приведен фрагмент кода, в котором играет музыка, а затем я пытаюсь заменить ее новой музыкой, когда происходит действие.
public static void songs(String word) {
String temp = word;
if (temp.equals("start")) {
try {
try {
blah = new FileInputStream("C:/Users/Austin/Desktop/Storage/programimages/game/battle.wav");
} catch (Throwable e) {
e.printStackTrace();
}
AudioStream as = new AudioStream(blah);
AudioPlayer.player.start(as);
System.out.println("going");
} catch (IOException e) {
System.err.println(e);
}
}
if (temp.equals("stop")) {
try {
try {
blah = new FileInputStream("C:/Users/Austin/Desktop/Storage/programimages/game/silence.wav");
} catch (Throwable e) {
e.printStackTrace();
}
AudioStream as = new AudioStream(blah);
AudioPlayer.player.stop(as);
System.out.println("stopping");
} catch (IOException e) {
System.err.println(e);
}
}
}
Это единственный метод, который мне удалось найти, при котором воспроизводится музыка, но если у вас, ребята, есть какие-либо другие предложения, дайте мне знать.
Опять же, я хочу, чтобы звуковые эффекты и музыка звучали, и прямо сейчас все, что происходит, — это будет играть одна песня, и она не остановится ни при каких обстоятельствах, пока не достигнет самого конца своей длины. Я хочу иметь возможность останавливать песни всякий раз, когда должна появиться новая, а также разрешать появление звуковых эффектов.
Спасибо!
(поскольку я застрял на этом и мне нужен ответ сейчас, я, вероятно, сделаю репост на одном или двух Java-сайтах, чтобы получить ответ как можно скорее, спасибо!!!!)
ОТРЕДАКТИРОВАННЫЙ КОД: (по-прежнему не останавливает текущий поток, любые дополнительные предложения приветствуются)
public static void songs(String word) throws IOException {
String temp = word;
if (temp.equals("go")) {
try {
blah = new FileInputStream("C:/Users/Austin/Desktop/Storage/programimages/game/battle.wav");
} catch (Throwable e) {
e.printStackTrace();
}
AudioStream as = new AudioStream(blah);
AudioPlayer.player.start(as);
System.out.println("going");
}
if (temp.equals("stop")) {
//don't try and do things with a null object!
if (as != null) {
AudioPlayer.player.stop(as);
System.out.println("stopping1");
}
System.out.println("stopping2");
AudioPlayer.player.stop(as);
}
}
Подробнее здесь: https://stackoverflow.com/questions/966 ... start-stop