SongChangeListener aus externer Lib

Hallo und guten Sonntag,


ich bin neu, habe den Anfangsthread gelesen, habe festgestellt dass ich alle Kritereien erfülle um nicht zerfleischt zu werden erfülle und habe ein Problem.

Ich versuche einen Hintergrundprozess zu schreiben in dem ich über COM Schnittstelle Winamp kontrolliere. Da mir JNI zu kompliziert ist und die Variante über Kommandozeile zu stumpf, ist die Wahl auf eine Bibliothek namens
org.jdesktop.jdic.mpcontrol
gefallen.

Grundsätzlich funktioniert das auch ganz prächtig, ich habe nur folgendes Problem:

In dieser Bibliothek existieren zwei Interfaces namens
ISongChangeListener und ISongChangeEventProducer.
Die beiden will (muss) ich dazu verwenden um beim Trackwechsel die ID3-Informationen auszulesen.
Ich hab leider nur absolut keinen Plan wie man einen Listener aus einer Bibliothek einbindet.

Ich hab mich echt bei Google durchgewurschtelt ohne Ende und in der Docu dazu is auch nix brauchbares.( Ich glaub den Satz schreibt ohnehin jeder der hier was postet, als Anfänger :p).

Ich bitte dringendst um Hilfe

Danke im Vorraus
ein Anfänger
 

mvitz

Top Contributor
Habe mich gerade mal ein bisschen durch die API und den Source Code gewühlt (boah ist java.net langsam [zumindest bei mir]). So wie ich das sehe, ist das Projekt ja schon älter (letzte Änderungen vor 2 oder 3 Jahren) und ich habe keine Möglichkeit gefunden, wie du die Listener registrieren kannst.

Vermutung, das war ein geplantes Feature, wurde dann aber nie eingeführt. Auch ein Casten der IMediaPlayer instanz auf die spezifische Winamp Instanz wird dir nicht helfen, da diese auch keine Methoden zum hinzufügen der Listener hat.

EDIT: Es sieht so aus, als würde lediglich Rythmbox Listener akzeptieren und unterstützen. In den restlichen Implementierungen gibt es hierzu keinen Support.
 
Zuletzt bearbeitet:
Dann steig ich glaub ich um auf Rhythmbox, weil mir das Feature ziemlich wichtig ist.

Könntest du mir evt. in ein paar kurzen Sätzen und unter Umständen kleinen CodeBeispielen helfen, wie man sowas registriert und einbindet?
Das wär echt nett :)
 

mvitz

Top Contributor
Du bekommst ja irgendwie eine Instanz einer IMediaPlayer. Diese castest du zu der eigentlichen Implementierung. (Diese variiert halt für die einzelnen verfügbaren Player.

Zuerst brauchst du natürlich eine eigene Implementierung des Listeners z.B.:
Java:
public class MySongListener implements ISongChangeListener {
  public void onChange(ISongInfo newSong) {
    System.out.println("Now playing: " + newSong.getSongTitle());
  }
}

Diesen Listener musst du dann am Player registrieren. Da dies nicht über das Interface funktioniert, musst du dir dazu die konkrete Implementierung holen. (Und auch in dieser Konkreten Implementierung funktioniert das nur unter Rhytmbox)

Java:
IMediaPlayer player = ...
RhytmboxControl rhytmboxPlayer = (RhytmboxControl) player;
rhytmboxPlayer.addListener(new MySongListener());
 
hmm mal kucken Rhythmbox scheints ja nur unter Linux zu geben, das wollt ich eigentlich vermeiden.
Mal schauen vielleicht gibts ja noch ander Möglichkeiten (MediaPlayer oder so).

Trotzdem Danke erstmal für die Hilfe

P.S.: Verdammt die ham hier kein Prost Smilie :D
 

mvitz

Top Contributor
Tut mir leid, Rhytmbox ist in der Tat ein Linux Music Player. Aber die Library die du dir da ausgesucht hast, scheint auch weder ausgereift noch weiter entwickelt zu werden.

Anstelle von dem Smiley gibt es hier aber nen Danke Button ;) Außerdem wäre es noch sinnvoll unten auf den "Thread als erledigt markieren" Button zu klicken.

Ansonsten wünsche ich dir viel Glück ne passende Library für einen Windows Player zu finden.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C NoClassDefFoundError mit externer Jar bei Start aus Eclipse Java Basics - Anfänger-Themen 3
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
K Erste Schritte JavaFX - wie von "externer" Klasse auf Methoden des Controllers zugreifen Java Basics - Anfänger-Themen 2
S log4j in externer Library Java Basics - Anfänger-Themen 4
R Klassen Problem mit externer Klasse Java Basics - Anfänger-Themen 5
A externer repaint Aufruf Java Basics - Anfänger-Themen 9
B Linux, Dateipfad, Einbindung externer Dateien.. Java Basics - Anfänger-Themen 7
I Externer Methodenaufruf, Punkt-Notation Java Basics - Anfänger-Themen 11
A paint() methode von externer Klasse aufrufen Java Basics - Anfänger-Themen 3
G Aufruf externer Funktionen Java Basics - Anfänger-Themen 7
J Methoden in externer Klasse -> Nullpointer Exception Java Basics - Anfänger-Themen 9
X Externer GUI Code verwenden / (Design Ansicht) Java Basics - Anfänger-Themen 3
M JS Import aus externer Jar Datei Java Basics - Anfänger-Themen 5
D Öffnen externer Dateien mit Eclipse Java Basics - Anfänger-Themen 5
W Java ProcessBuilder - externer Prozess nur einmal starten und mehrere Inputs geben Java Basics - Anfänger-Themen 7
Z Text aus externer Datei in TextArea einlesen Java Basics - Anfänger-Themen 5
U Externer aufruf zum Fenster erstellen will nicht Java Basics - Anfänger-Themen 2
B externer Listener für Zeichenbereich? Java Basics - Anfänger-Themen 2
T Klassen und Objekte externer Aufruf. Java Basics - Anfänger-Themen 8
P JSP - Daten aus externer Datei auslesen und anzeigen Java Basics - Anfänger-Themen 3
M String aus externer Klasse in JTextArea schreiben Java Basics - Anfänger-Themen 4
T Öffnen externer Datei als eigener Prozess Java Basics - Anfänger-Themen 8
B Öffnen externer Dateien Java Basics - Anfänger-Themen 16
F Einbindung externer JARs Java Basics - Anfänger-Themen 2
M Externer ActionListener funkt nicht so wie ichs ma vorstell Java Basics - Anfänger-Themen 2
R Ausgaben von externer .exe einlesen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben