Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Internet Radio] ICBass Radio (https://www.delphipraxis.net/121405-%5Binternet-radio%5D-icbass-radio.html)

Rülps 26. Sep 2008 21:31


[Internet Radio] ICBass Radio
 
Liste der Anhänge anzeigen (Anzahl: 2)
Moin!

Ich habe ein Internet Radio Streamer programmiert, welches sich noch in der Anfangsphase befindet. Das will ich hier nun vorstellen. Mich hatten einige Dinge an Screamer Radio gestört und als ich im Support-Forum las, wie der Autor auf die Frage, ob es in Delphi programmiert sei, nur spöttisch meinte, er seie stolz, dass keine Zeile Delphi auch nur in der Nähe des Programms seien :mrgreen: , musste ich es nachprogrammieren ;-)!

Features:

- Presets/Favorites
- Aufnahme/Kodierung nach OGG/MP3
- Bedienbar auch im Tray

Sonstiges

Meine Lieblingssender habe ich voreingestellt in den Favorites gelassen. Vielleicht gefällt dem einen oder anderen ja auch einer dieser Sender.

Getestet habe ich es nur unter Windows XP SP2. Ich habe keine Ahnung, ob es auch unter VISTA läuft.

Det wars och schon, wa! Viel Spaß beim Testen!

Update auf Version 0.3.3.83 (stable)
  • [Fixed] Fehlerhafte Favoriteneintragungen, wenn aus der History, Stationen ausgewählt wurden
  • Kleinere Optimierungen und Bugfixes
  • Linux WINE Kompatibilität verbessert
Update auf Version 0.3.2.83
  • [Added] 'Aktuelle Wiedergabe' Popup im Tray wählbar zw. Windows Balloon hint und einem Hintfenster (JvDesktopAlert)
  • [Added] Zoom in den Tray ist nun wählbar
  • [Added] History-Funktion nun auch aus dem Tray ausführbar
  • [Fixed] Wegen falschen internen Metadatenupdates kam es zu Popups zum falschen Zeitpunkt (auch die Aufnahmefunktion war davon betroffen)
  • [Fixed] XML-Entitäten wie z.B. "²" führten zu Fehlern
  • [Fixed] Falsche Stationshomepages wurden aus der History-Funktion heraus zugewiesen
Update auf Version 0.2.17.71
  • Ein PopupMenu erscheint, wenn man im Visualierungsfeld rechtsklickt und beinhaltet folgende Features:
    * Durch die Favorites navigieren (so wie im Tray PopupMenu)
    * History Funktion (5, 10, 15, 20 oder 25 Einträge wählbar unter Einstellungen)
    * 'History löschen' Funktion
    * Programm/Aufnahme Ordner öffnen
    * 'Immer im Vordergrund' Option
  • 'Zeige Status' Funktion im Tray PopUp Menü
  • Kleinere Bugfixes
Update auf Version 0.2.16.69
  • RadioItems in PopupMenus (Skins, Sprachen und Hintergrundbilder)
  • Sprachanpassungen im 'Aktuelle Wiedergabe' Panel
  • Sprachanpassungen von Konstanten der Skinkomponenten
  • Blanke Visualisierungshintergründe wählbar (farbig)
  • Beim Programmstart automatisches Abspiel (wählbar)
  • Beim Programmstart kann die Form zentriert werden (wählbar)
  • Plug-In Interface (rudimentär) implementiert
  • ShoutCast Suche Plug-In verfügbar
  • Viele Verbesserungen und wichtige Bug-Fixes im Code!
Update auf Version 0.2.11.55
  • Es erscheint nun keine Fehlermeldung mehr als Dialog, sondern als Labelinfo im Panel 'Aktuelle Wiedergabe'
  • Es können nun während des Verbindungsaufbaus beliebig die Sender gewechselt werden
  • Controls in den Dialogen werden nun ebenfalls geskinned dargestellt

Schöne Grüße

Fussball-Robby 26. Sep 2008 21:46

Re: [Internet Radio] ICBass Radio
 
Hey,
ich habe dein Programm getestet und muss sagen, dass es mir wirklich gut gefällt! Es läuft ohne Probleme (XP SP2). Auch das Design und die Handhabung sind klasse :wink: Also echt gute Arbeit, weiter so :thumb:

Edit: Mir ist nun doch noch was aufgefallen: Bei vielen Sendern kommt nach dem Verbindungsversuch ein Fehler: "Stream konnte nicht abgespielt werden! Fehlercode (0): BASS_OK". Das stört ein bisschen, zum einen natürlich weil man den Sender nicht hören kann und zu anderen weil man jedes mal die Fehlermeldung wegklicken muss..

ghost007 27. Sep 2008 09:25

Re: [Internet Radio] ICBass Radio
 
Also,
technisch gesehen läuft das ganze auch unter vista. Habs grad eben mal auf meinem laptop getestet.
Jedoch wird der skin nicht "richtig" bzw. nicht so wie unter XP angezeigt.
Nette arbeit ;)

MfG - Ghost007

P.S. Welche kompo verwendest du für den skin? Ist die free/open source?

Relicted 27. Sep 2008 10:23

Re: [Internet Radio] ICBass Radio
 
Getestet unter Windows Vista Business x64:
Läuft ohne Probleme!

Skins werden korrekt geladen, sind switchbar etc.
Super Arbeit. Gefällt mir sehr gut!

ghost: siehe about dialog... "DynamicSkinForms" werden verwendet - die sind leider ned kostenlos! Almdev

Gruß
reli

ghost007 27. Sep 2008 10:34

Re: [Internet Radio] ICBass Radio
 
Oh man ... schade :X die sind ja richtig teuer >.<

toms 27. Sep 2008 12:18

Re: [Internet Radio] ICBass Radio
 
Hallo Rülps! Gefällt mir sehr gut dein Internet Radio.

Einziger Punkt: Die Fehlermeldung "Stream konnte nicht abgespielt werden! Fehlercode (0): BASS_OK" stört.

Edit: Noch was: Anstelle der URL / IP sollte ein "friendly display name" angezeigt werden.

BullsEye 27. Sep 2008 13:10

Re: [Internet Radio] ICBass Radio
 
Zitat:

Zitat von ghost007
Oh man ... schade :X die sind ja richtig teuer >.<

Kein Prob:

Delphi-Quellcode:
IF (Geld.zuViel = TRUE) THEN BEGIN
Skins.buy := true;
END;
:P
Nun aber mal zu deinem Programm:


Zitat:

Zitat von toms
[..] Die Fehlermeldung "Stream konnte nicht abgespielt werden! Fehlercode (0): BASS_OK" stört.

bzw


Zitat:

Zitat von Fussball-Robby
[..]

Edit: Mir ist nun doch noch was aufgefallen: Bei vielen Sendern kommt nach dem Verbindungsversuch ein Fehler: "Stream konnte nicht abgespielt werden! Fehlercode (0): BASS_OK".

Das liegt aber an der BASS.DLL. Das Problem hatte ich damals auch, allerdings habe ich nie wirklich den Fehler gefunden. Anscheined wurde es auch nicht in der neueren Version behoben :gruebel:

Rülps 27. Sep 2008 13:16

Re: [Internet Radio] ICBass Radio
 
Moin!

Als die Sache mit dem "Stream konnte nicht abgespielt werden! Fehlercode (0): BASS_OK" liegt daran, dass ein Thread gestartet wird, damit die Anwendung während des Verbindungsaufbaus und Bufferns nicht einfriert. Im Moment muss man also warten bis dieser Thread abgearbeitet ist, bevor man sich mit einer anderen Station verbinden kann. Wie man einen laufenden Thread korrekt beenden kann, weiß ich leider nicht.

Generell wird eine Errormeldung ausgelöst, wenn kein Channel Stream erzeugt werden konnte (in BASS gesprochen: chan = 0). In diesem Fall wird ein MessageDlg mit dem Fehlercode angezeigt und in diesem Falle gibt BASS_ErrorGetCode 0 zurück - also BASS_OK.

Also im Moment einfach abwarten bis eine Fehlermeldung kommt oder der Stream korrekt abgespielt werden kann (also bis der Thread beendet ist).

Edit: toms: Was ist ein "friendly display name"?

Schöne Grüße

BullsEye 27. Sep 2008 18:00

Re: [Internet Radio] ICBass Radio
 
Zitat:

Zitat von Rülps

Edit: toms: Was ist ein "friendly display name"?

Ich denke er meint damit, das da nicht die IP stehen soll sondern BSP der Name des Senders. Bzw wenn möglich - Senderabhängig -
der aktuell abgepielte Titel


gruß

toms 27. Sep 2008 18:20

Re: [Internet Radio] ICBass Radio
 
Zitat:

Zitat von Rülps
Edit: toms: Was ist ein "friendly display name"?

Anstelle IPs andere Bezeichnungen (welche man sich auch merken kann)

Schön wäre noch ein "Collapse All" resp "Expand All" Feature im TreeView
Eine Sender History wäre auch gut sowie die Möglichkeit, dass beim Starten des Programms
der zuletzt ausgewählte Stream abgespielt wird.

BullsEye 27. Sep 2008 18:23

Re: [Internet Radio] ICBass Radio
 
ggf könntest du dir mal als Vorlage den "phonostar-Player" angucken. Der ist an sich recht gut. Allerdings der lange Start des Programmes ist ein wenig nervig.
Aber da kann man auch Sender als Favorieten hinzufügen etc. Und der hat schon eine Voreingestellte Auswahl an Sendern.

toms 27. Sep 2008 18:25

Re: [Internet Radio] ICBass Radio
 
Zitat:

Zitat von BullsEye
ggf könntest du dir mal als Vorlage den "phonostar-Player" angucken.

Genau. So ähnlich wäre gut.

PS: Im Spectrum Color Dialog werden die Controls nicht geskinnt.

BullsEye 27. Sep 2008 18:32

Re: [Internet Radio] ICBass Radio
 
ggf sollte der Hintergrund bei dem Visualiesierung noch einfacher sein. Sprich das man bsp einfach "schwarz" auswählen kann anstelle eines Bildes ;)

toms 27. Sep 2008 18:37

Re: [Internet Radio] ICBass Radio
 
In der Suche sollte auch ein "Bitrate"-Filter sein.
D.h nur Sender mit Bitrate > X werden angezeigt.

BullsEye 27. Sep 2008 19:36

Re: [Internet Radio] ICBass Radio
 
1)Du hast in Favoriten einen Sender doppelt:

Deutsche Welle
und
German Wave

sind ein und der selbe Sender... ;)

2) Warum brauch ich unter Vista Business Adminrechte wenn ich FM4 hören will?!
Bei den anderen geht das auch so!

Rülps 27. Sep 2008 20:05

Re: [Internet Radio] ICBass Radio
 
Hallo zusammen ;-)

eine glückliche Fügung hat dazu geführt, dass der AsyncCalls Thread hier in der Delphi-Praxis gerade aktuell ist. Ich habe meine Threads auf AsyncCalls umgestellt und mit Hilfe der Synchronisierungsfunktion dieser Unit ist nun ein Stationswechsel während des Verbindungsaufbaus möglich. Die Fehlermeldung erscheint nun auch nicht mehr als Dialog. Vielen Dank für diese Anregungen, da ICBass Radio nun tatsächlich weniger nervt :thumb: . Da hat sich der Upload für mich schon gelohnt!

Dann mal zu den neuen Vorschlägen :shock:
  • Friendly Display Name
Hmm, da müsste ich einiges umschreiben, um das zu realisieren, da die ausgewählten Captions und Text Properties direkt übergeben werden. Ich werde das aber mal im Hinterkopf behalten.
  • "Collapse All" resp "Expand All"
Gute Idee! Wird kommen!
  • Spectrum Color Dialog
Danke gefixed!
  • Hintergrund Visualisierung blank
Auch gute Idee. Wird auch kommen!
  • Suche mit "Bitrate" Filter
:shock: Zum einen müsste ich mich dafür mit jeder Station verbinden, um herauszufinden, mit welcher Bitrate der Stream gerade gesendet wird und zum anderen geht das bei beispielsweise Windows Media bezogenen Codecs gar nicht, da diese keine Metadaten senden. Daher halte ich das für keine gute Idee.
  • German Wave != Deutsche Welle
Bei mir nicht ;-) Der eine Sender sendet auf Englisch und der andere auf Deutsch.
  • Vista Business Adminrechte bei FM4
Kann das mit dem WMA Codec zusammenhängen? Ich arbeite auf XP als User und dort habe ich keine Schwierigkeiten mich mit FM4 (welcher übrigens ein hervorragender österreichischer Sender ist) zu verbinden. Komisch...

Edit: Update im ersten Post!

Schöne Grüße

toms 27. Sep 2008 20:16

Re: [Internet Radio] ICBass Radio
 
Danke für das Update :thumb:

Was ist mit dem?
Zitat:

Zitat von toms
Eine Sender History wäre auch gut sowie die Möglichkeit, dass beim Starten des Programms
der zuletzt ausgewählte Stream abgespielt wird.

Noch einige Punkte:

- Im Set Color Dialog ist die Sprache nur Englisch
- Im Set Language Popup die Items als RadioItem darstellen. (aktuelle Sprache markiert)
- "Keine Wiedergabe" steht auch wenn Englisch ausgewählt ist.
- Bei der Lautstärkeregelung evtl beim Verschieben einen Hint mit der Lautstärke anzeigen.

BullsEye 28. Sep 2008 14:28

Re: [Internet Radio] ICBass Radio
 
- Im "SplashScreen" (Statbildschirm) steht noch die alte Versionsnummer (0.2.9.53)
- ggf wäre es schön zu sehen, welcher Skin der aktuell ausgewählte ist. Sprich das in der ComboBox das ausgewählte Item aufgelistet wird
- Das selbe bei der Sprache und dem Skin

Larsi 28. Sep 2008 14:51

Re: [Internet Radio] ICBass Radio
 
Sehr gutes Programm. Läuft super. Das Verhalten beim minimieren ist allderdings falsch. Das Trayicon wied nicht beim minimieren angezeigt.

Rülps 28. Sep 2008 15:34

Re: [Internet Radio] ICBass Radio
 
  • Im "SplashScreen" (Statbildschirm) steht noch die alte Versionsnummer (0.2.9.53)
Ich habe es gerade heruntergeladen und bei mir wird die korrekte Versionsnummer angezeigt.
  • ggf wäre es schön zu sehen, welcher Skin der aktuell ausgewählte ist. Sprich das in der ComboBox das ausgewählte Item aufgelistet wird. Das selbe bei der Sprache und dem Skin
Es ist keine ComboBox sondern ein Popup-Menü, aber ich werde sehen, was ich tun kann.
  • Eine Sender History wäre auch gut sowie die Möglichkeit, dass beim Starten des Programms
    der zuletzt ausgewählte Stream abgespielt wird.
Sollen in der History alle Sender auftauchen mit denen man sich versucht hat zu verbinden, oder nur die bei denen die Verbindung erfolgreich war? Das mit dem Abspielen des zuletzt gewählten Streams ist kein Problem. Es werden beide Funktionen implementiert.
  • Sprache im "Aktuelle Wiedergabe" Panel
Das wird nicht so einfach werden die Sprache im "Aktuelle Wiedergabe" Panel zu verändern, aber ich schätze das kriege ich hin.
  • Sprache Set Color Dialog
Da muss ich mal schauen, ob ich die verändern kann. Das hängt davon ab, ob DynamicSkinForms das unterstützt.
  • Set Language Popup als RadioItem
Siehe zweiter Punkt
  • Lautstärkeregelung mit Hint
Da muss ich auch mal schauen.
  • Das Trayicon wied nicht beim minimieren angezeigt.
Ein Makel mit dem ich i.M. gut leben kann ;-)

BullsEye: Funktioniert das Streamen von WMA Streams nun ohne Adminrechte?

Der momentane Stand ist, dass ich erst mal die kleineren gewünschten Features und Verbesserungen einbauen will. Dann will ich die Anzeige und Verwaltung der Favorites verbessern. Das kann aber noch eine ganze Weile dauern, da ich überlege auf VirtualTreeView umzusteigen.

Achja, phonostar habe ich mir heruntergeladen und installiert und verstehe nun euren Wunsch nach den "Friendly Display Namen", aber ihr müsst das so sehen: Der Stationsname ist der eigentliche "Friendly Display Name". Diesen Stationsnamen sind Streams zugeordnet, die aber alle den selben Sender repräsentieren. Manchmal ist eine Stream Url nicht verfügbar und eine andere ist es. Deshalb macht es Sinn alternative Stream Urls zu haben. In der Regel haben die verschiedenen Streams verschiedene Bitraten oder Typen. z.B. Schaut euch mal in den Presets "By Genre -> Anime Music -> Keiichi.net EX²: Extreme Anime Radio" an. "http://radio.keiichi.net/listen/aac-band.pls" streamt über AAC. "http://radio.keiichi.net/listen/hi-band.pls" streamt über mp3 (Bitrate: 128) und "http://radio.keiichi.net/listen/lo-band.pls" ebenfalls über mp3 aber mit einer Bitrate von nur 24.

Schöne Grüße

toms 28. Sep 2008 15:57

Re: [Internet Radio] ICBass Radio
 
Zitat:

Zitat von Rülps
Da muss ich mal schauen, ob ich die verändern kann. Das hängt davon ab, ob DynamicSkinForms das unterstützt.

Via TspSkinColorDialog.SkinData kannst du verschiedene TResourceStrData zuweisen, je nach Sprache

BullsEye 28. Sep 2008 16:00

Re: [Internet Radio] ICBass Radio
 
Zitat:

Zitat von Rülps
Lautstärkeregelung mit Hint

Oder pack da ein Label drunter/drüber:

Delphi-Quellcode:
procedure TfrmMain.trbVolumeChange(Sender: TObject); // Trackbar
begin
  Label1.Caption := Format('%d %%', [BassPlayer1.Volume]);
end;
Zitat:

Zitat von Rülps
BullsEye: Funktioniert das Streamen von WMA Streams nun ohne Adminrechte?

Ja, allerdings steht da denn "No Metadata aviable"
Sprich ich bekomm nicht angezeigt wie viel Kbit's etc der Sender hat und was für Titel/Interpret läuft

Rülps 3. Okt 2008 06:32

Re: [Internet Radio] ICBass Radio
 
So, morgen zusammen,

es gibt ein neues Update. Ich habe versucht alle Wünsche einzubringen. Die History-Funktion und den Lautstärkeregler-Hint habe ich allerdings noch nicht programmiert. Sie kommen aber (hoffe ich zumindest) mit dem nächsten Update.

Von den wichtigsten Neuerungen, sieht man oberflächlich nichts, aber ich habe vieles in ICBass Radio umgeschrieben, so dass in Zukunft Neuerungen und Verbesserungen viel einfacher stattfinden können als bisher.

Ein rudimentäres PlugIn-System ist nun ebenfalls integriert und ich habe auch schon mein allererstes PlugIn geschrieben, wobei ich nicht viel machen musste. Daniel Gaußmann hat eine sehr praktische Unit (ShoutcastUtils) mit Beispiel im Netz bereitgestellt und alles was ich gemacht habe, ist dieses Beispiel von einer eXecutable Datei in eine DLL umzuschreiben und für die Kommunikation zwischen dem Hauptprogramm und dem PlugIn zu sorgen. Bei diesem PlugIn werden bei einem Doppelklick auf einen Eintrag die Daten an meinen Streamer weitergegeben, welcher dann eine Verbindung aufbaut. Diese Funktionalität ist sehr praktisch, aber da ich ICBass Radio nicht so sehr von Online-Diensten abhängig machen will, habe ich entschieden, dass es als PlugIn ideal ist. Es kann schnell verändert werden ohne das Programm verändern zu müssen. Alternativ kann man es auch in die Tonne treten, wenn man diese Funktionalität nicht braucht. Bei mir klappt das PlugIn sehr gut. Könnt ihr bitte testen, ob das bei euch auch funktioniert?

Und für Vorschläge und Kritiken bin ich weiterhin offen ;-)

Schöne Grüße

WS1976 3. Okt 2008 07:56

Re: [Internet Radio] ICBass Radio
 
hallo,
tolles Programm. Nur schade, dass du die Source nicht veröffentlicht hast.
Schade.

Grüsse
rainer

BullsEye 3. Okt 2008 11:14

Re: [Internet Radio] ICBass Radio
 
Sehr nett..
Vor allem das Einstellungsmenü gefällt mir irgendwie besser ;)


Hier vllt ne Lösung für die Laustärkereglung, musst du nur an deinen Code anpassen.
Delphi-Quellcode:
lblVolume.Caption := Format('%d %%', [BassPlayer1.Volume])
ggf wäre es angebracht nen Update Programm für dein ICBassRadio zu schreiben, da vllt nicht alle immer Lust haben, die Datei komplett neu runterzuladen etc...
Ich hab da nen ganz einfaches Updateprogramm. Funktioniert soweit auch gut, wenn du Interesse hast, kann ich dir heute Abend den Code schicken.

Rülps 3. Okt 2008 14:36

Re: [Internet Radio] ICBass Radio
 
Das Problem mit dem Lautstärkeregler-Hint ist, dass es sich mit dem Regler mitbewegen soll. Ich habe es schon mit einem Popupmenu versucht, aber es flackerte sehr stark. Vielleicht finde ich ja etwas Geeignetes.

Zur Update-Funktion: Ich habe keinen Hoster, bei dem ich Dateien hochladen könnte. Aber die Idee gefällt mir, da ich die Update-Funktion wieder über ein PlugIn integrieren könnte.


Schöne Grüße

Rülps 4. Okt 2008 02:06

Re: [Internet Radio] ICBass Radio
 
Und nochmal ein Update. Die History Funktion ist drinne.

Schöne Grüße

Rülps 8. Okt 2008 22:41

Re: [Internet Radio] ICBass Radio
 
Hallo,

es ist wieder mal Zeit für ein Update.

Schöne Grüße

Rülps 12. Okt 2008 21:11

Re: [Internet Radio] ICBass Radio
 
So, die erste Version, die ich stable nennen würde, ist im ersten Post herunterladbar.

Schöne Grüße :hi:

Rülps 4. Feb 2009 15:23

Re: [Internet Radio] ICBass Radio
 
Hallo liebe Foren-Mitglieder,

da ich auf eine andere Programmiersprache umgestiegen bin, kann ich das Programm nicht mehr warten bzw. weiterentwickeln. Da ich es Schade finde, dass das so ist, würde ich gerne den Source in vertrauenswürdige Hände geben.

Wenn Du ernsthaft Lust hast, das Programm weiterzuentwickeln, dann schick' mir 'ne PN. Ich will nur anmerken, dass ich mir das Recht vorbehalte, den Source nicht jedermann zu geben. Hier gibt's ja so Kandidaten...

Sei Dir außerdem über die benötigten Komponenten bewusst!

Schöne Grüße
--

taaktaak 4. Feb 2009 15:28

Re: [Internet Radio] ICBass Radio
 
... und welche Komponenten sind das?
Hab' beim schnellen Durchsehen keine Aussage dazu gefunden
:roll:

Rülps 5. Feb 2009 09:58

Re: [Internet Radio] ICBass Radio
 
XMLLib von Muetze, JVCL (hier eigentlich nur TJvDestopNotifier), DynamicSkinForms, CoolTrayIcon und diverse Units und DLLs, die aber mitgeliefert werden würden...

Gege 5. Dez 2011 17:29

AW: [Internet Radio] ICBass Radio
 
nach langer Zeit hier mal wieder etwas ;)

entwickelt es jetzt eigentlich wer weiter ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz