# [Projekt] Radioplayer



## Phoenixz (18. Sep 2014)

Hallo,

ich möchte mich nun einem etwas größerem Projekt widmen und habe deshalb vor, einen kleinen Internetradioplayer zu programmieren.

Meine Grundidee sieht wie folgt aus:

Ich habe diverse Webradios welche mir gefallen (hier jetzt bspw. Radio1 und Radio2). Diese bieten auf ihrer Homepage einen eigenen Webplayer an (Webplayer1, Webplayer2). 
Da jene aber sehr unterschiedlich aufgebaut sind (einmal streame ich direkt im Browser, ein andermal aus dem Windows Media Player), möchte ich ein kleines Programm entwerfen, welches mir ermöglicht einfach die URL dieser Webradios zu kopieren und in mein eigenes Programm einzubinden. Dadurch wird es mir möglich einfach von Radio1 zu Radio2 umzuschalten, ohne viel in meinem Browser erledigen zu müssen.

Leider habe ich damit noch kaum Erfahrung, ich habe lediglich mal ein paar MIDI-Sounds programmiert (Tutorials). 

Weiterhin weiß ich nicht, welche Bibliotheken alles benötigt werden bzw. was genau ich in der API benötige / was ich mir näher anschauen sollte und ob es bereits Beispielprojekte/Tutorials/Hilfestellungen/Nützliches für mein Vorhaben gibt.

Ich habe bisher in Erfahrung bringen können, dass sich hinter den URLs verschiedene Datentypen/Dinge verbergen können (.wma, .mp3, …).


Mein grober Verlaufsplan sieht wie folgt aus:


UML entwerfen, in API einarbeiten, wenn möglich Beispielprojekte betrachten

die eigentliche Implementierung eines EINFACHEN Players 
→ Sporadische GUI, 2 Streams werden eingebunden

Erweiterung und Ausbesserung des einfachen Players


Zusatzfunktionen

Ich möchte dies aus eigener Kraft erarbeiten und von euch lediglich Hilfestellungen/Anleitungen/Vorschläge/Anregungen/Antworten auf meine Fragen und keinen komplett fertigen Player.

Vielen Dank für eure Hilfe!


----------



## dzim (18. Sep 2014)

Oberfläche: Schau dir dazu mal JavaFX an (hier im Forum gibt es zu Recht einen eigenen Thread für Oberflächen-Programmierung, alle diesbezügliche Fragen am Besten dort stellen).

Das Playback könnte etwas schwieriger sein, aber ich glaube, du könntest hier mal schauen, ob du das mit VLCJ ( https://github.com/caprica/vlcj ) hinbekommen würdest. Leider war und ist die Liste der von Haus aus unterstützen Codecs in Java eher klein (MP3 gehört aber bei JavaFX auf jeden Fall mit dazu!).

Modularität (und auch Erweiterbarkeit) kannst du auf verschiedene Wege erhalten, z.B. in dem du NetBeans RCP oder Eclipse RCP, oder auch nur OSGi als Basis verwendest. Allerdings scheint deine Programmiererfahrung noch in den Kinderschuhen zu stecken, also konzentriere dich vielleicht eher darauf, dir guten Code-Stil anzugewöhnen, als gleich zum Start die eierlegenden Wollmilchsau zu programmieren, denn dann geht es zu schnell in Frust über, wenn mal etwas nicht so recht klappen will.

Wie du es schon begonnen hast, zerlege dein Projekt in einzelne Gebiete. Der Ablaufplan ist sicher ein guter Anfang für dich.
Versuche nebenbei herauszufinden (Google, StackOverflow, ...) wie man am besten Radio-Streams verwenden kann (ich wüsste das z.B. trotz aller Programmiererfahrung nicht...). Deine nächsten Tage/Wochen werden also eher ("langweilige", aber notwendige) Vorbereitung und Recherche sein.


----------



## Phoenixz (18. Sep 2014)

Ich danke dir schon einmal für deine Antwort, würde mich aber über weitere auch freuen! 

JavaFX hatte ich sowieso vor zu verwenden, dies haben wir im letzten Semester kennen gelernt und ich kenne mich schon ein wenig in der API aus.

Momentan funktioniert die Seite vom VLCJ nicht, werd mich morgen darüber nochmals genauer erkundigen.

Zum Thema Modularität und Erweiterbarkeit: Dies ist mir persönlich ein wichtiger Punkt, denn es sind eigentlich grundlegende Techniken auf die jedes Projekt aufbauen soll. Deshalb habe ich bereits begonnen verschieden Entwurfs-/Verhaltensmuster zu erlernen (bis jetzt: Strategy, Observer, Decorator, Factories, Singleton und momentan beim Command). 
Von OSGi habe ich zwar schonmal etwas in unserer Vorlesung gehört, leider kamen wir nicht mehr dazu es näher zu behandeln.

Habe heute einfach mal testweise erstmal eine lokale mp3-Datei abspielen lassen, funktioniert. Jetzt heißt es sich tiefer in das Thema einlesen! Ich werde bei Bedarf meine Fragen in diesen Thread posten.


----------

