У меня есть старый звуковой класс, и я хочу заменить его applet.AudioClip на что-нибудь современное, чтобы можно было изменить громкость. Как бы я это сделал?
Я разрабатываю игру на java с некоторыми симпатичными 8-битными sfx, и у меня есть этот невероятно старый звуковой класс 2011 года, сделанный notch. Это хороший звуковой класс, единственная проблема в том, что я не могу изменить громкость звуков в нем, я несколько раз пытался изменить это, но всегда получаю действительно запутанные ошибки и исключения NullPointerExceptions. Это мой звуковой класс:
package com.teto.main;
import java.applet.Applet;
import java.applet.AudioClip;
public class Sound {
public static final Sound levelUp = new Sound("/example.wav");
private AudioClip clip;
private Sound(String name) {
try {
clip = Applet.newAudioClip(Sound.class.getResource(name));
} catch (Throwable e) {
e.printStackTrace();
}
}
public void play() {
try {
new Thread() {
public void run() {
clip.play();
}
}.start();
} catch (Throwable er) {
er.printStackTrace();
}
}
}
Как видите, он использует java.applet.AudioClip, который, как мне кажется, не позволяет вам изменять громкость используемых с ним звуковых эффектов. Вот почему я хочу выяснить, как заменить это на что-нибудь получше, чтобы я все еще мог набирать Sound.soundname.play(); но я также могу изменить громкость.