Dieser einfache Code produziert auf einigen Maschinen, die ich zum Testen verwendet habe, keinen Ton. Ich führe den Code in Eclipse aus, aber ich habe auch versucht, die Befehlszeile zu missbrauchen.Einfaches Java MIDI-Beispiel, das keinen Ton erzeugt
public static void main(String[] args)
{
try {
Synthesizer synthesizer = MidiSystem.getSynthesizer();
synthesizer.open();
MidiChannel[] channels = synthesizer.getChannels();
channels[0].noteOn(60, 60);
Thread.sleep(200);
channels[0].noteOff(60);
synthesizer.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
Ich bin in der Lage erfolgreich Sound zu erhalten, indem ein Sequencer bekommen, MIDI-Events der Sequenz hinzugefügt, und die Sequenz zu spielen, aber ich versuche, einige Echtzeit-Musik-Effekte zu tun, die der Sequenzer nicht Unterstützung.
Irgendwelche Ideen?
BEARBEITEN MIT LÖSUNG: Es stellt sich heraus, dass das JRE standardmäßig nicht mit einer Soundbank ausgestattet ist (interessant, dass die Verwendung des Sequencers funktionierte, aber nicht mit dem Synthesizer). Danke, thejmc!
Um das Problem zu lösen, ich downloaded a soundbank from java.sun.com und legte es (auf WinXP) C: \ Programme \ jre1.6.0_07 \ lib \ audio (musste den Audio-Ordner).
Sind Ihre Lautsprecher angeschlossen? :) – nickf
Ja! (Gute Frage, obwohl - ich habe einmal diagnostiziert jemandes Monitor "Problem" mit der gleichen Frage) –