Итак, я делаю миди-систему для электронной 2-мерной java-игры при разработке, и до сих пор мне удавалось создать простой миди-файл, который воспроизводится + останавливается, но я пытался играть с громкостью и затуханием, но это не так. кажется, хотят работать правильно.
Вот мой файл класса:
package sign;
import java.io.*;
import javax.sound.midi.*;
public class Midi {
private static Sequencer sequencer = null;
public void play(String filename) {
play(filename,false);
}
public static void play(String filename, boolean loop) {
try {
stop();
sequencer = MidiSystem.getSequencer();
File midiFile = new File(filename);
sequencer.setSequence(MidiSystem.getSequence(midiFile));
if (loop)
sequencer.setLoopCount(Sequencer.LOOP_CONTINUOUSLY);
sequencer.open();
sequencer.start();
} catch (Exception e) {
System.err.println("MidiPlayer: " + e);
sequencer = null;
}
}
public static Sequencer getSequencer() {
return sequencer;
}
public static void stop() {
try {
if ((sequencer == null) || (!sequencer.isRunning())) return;
sequencer.stop();
sequencer.close();
}
catch (Exception e) {
System.err.println("MidiPlayer: " + e);
}
sequencer = null;
}
}
Я спрашиваю, может ли кто-нибудь объяснить мне, как реализовать громкость + затухание с этим файлом?
Я пробовал некоторые методы затухания + регулировка громкости, но они всегда вылетают из моей игры, потому что для их работы требуется какое-то смехотворно старое миди-устройство.