Hallo Java Gemeinde.
Ich möchte ein MidiDevice-Objekt einer anderen Klasse übergeben.
Momentan habe ich eine Klasse MidiSettings. Dort kann man das gewünschte Midigerät auswählen. Diese speichere ich dann in einer private Variablen ab und stelle dazu die Methode: public MidiDevice returnMidiDevice(){} zur Abfrage bereit.
In der anderen Klasse generiere ich dann eine Instanz die sich den benötigten Treiber dann mit returnMidiDevice holt.
Frage ich nun in der neuen Klasse das Midigerät ab, dann erhalte ich den richtigen Wert. Also den, den returnMidiDevice geliefert hat.
Jetzt wird in dieser Klasse wieder eine Instanz einer andere Klasse erzeugt, die im Konstruktor das eben zur Verfügung gestellte MidiDeviceObjekt benutzt.
Wenn ich in der eben generierten Instanz der neuen Klasse nun das verwendete MidiDevice abfrage erhalte ich wieder das korrekte.
Soweit so gut!
Wenn ich das Gerät nun verwende bekomme ich eine MidiUnavailabeException!
Das ist mir unerklärlich, denn wenn ich das Gerät in der als letztes erzeugten Instanz manuell eingebe erhalte ich keine Fehlermeldung und es funktioniert.
Kann es sein, dass das MidiDevice von dem ersten Aufruf meiner MidiDevice-Klasse blockiert wird und ich es deshlab nicht verwenden kann? Es wird aber nirgends geöffnet. Nur in der letzten Klasse. Ich hole mir lediglich das Device und reiche es weiter.
Ich hoffe es ist nciht zu kompliziert erklärt.
Hat jemand eine Ahnung?
Gruß Marco
Ich möchte ein MidiDevice-Objekt einer anderen Klasse übergeben.
Momentan habe ich eine Klasse MidiSettings. Dort kann man das gewünschte Midigerät auswählen. Diese speichere ich dann in einer private Variablen ab und stelle dazu die Methode: public MidiDevice returnMidiDevice(){} zur Abfrage bereit.
In der anderen Klasse generiere ich dann eine Instanz die sich den benötigten Treiber dann mit returnMidiDevice holt.
Frage ich nun in der neuen Klasse das Midigerät ab, dann erhalte ich den richtigen Wert. Also den, den returnMidiDevice geliefert hat.
Jetzt wird in dieser Klasse wieder eine Instanz einer andere Klasse erzeugt, die im Konstruktor das eben zur Verfügung gestellte MidiDeviceObjekt benutzt.
Wenn ich in der eben generierten Instanz der neuen Klasse nun das verwendete MidiDevice abfrage erhalte ich wieder das korrekte.
Soweit so gut!
Wenn ich das Gerät nun verwende bekomme ich eine MidiUnavailabeException!
Das ist mir unerklärlich, denn wenn ich das Gerät in der als letztes erzeugten Instanz manuell eingebe erhalte ich keine Fehlermeldung und es funktioniert.
Kann es sein, dass das MidiDevice von dem ersten Aufruf meiner MidiDevice-Klasse blockiert wird und ich es deshlab nicht verwenden kann? Es wird aber nirgends geöffnet. Nur in der letzten Klasse. Ich hole mir lediglich das Device und reiche es weiter.
Ich hoffe es ist nciht zu kompliziert erklärt.
Hat jemand eine Ahnung?
Gruß Marco