ShoutcastUtils
Auf www.shoutcast.com gibt es eine sehr umfangreiche Liste von Webradiosendern. Auf der Webseite steht eine Suchfunktion zur Verfügung, um in dieser Liste nach Sendern oder Titel zu suchen, die irgendwo gerade laufen. Diese Suche kann hiermit in ein Programm integriert werden.
D.h. in einem Player kann der User z.B. den Suchbegriff "Scooter" eingeben und erhält als Antwort eine Menge von Radiosendern, die gerade ein Stück von Scooter abspielen. Die Trefferquote ist dabei längst nicht 100%, da die Datenbank nicht immer ganz aktuell ist. Er kann dann einen Sender aus dieser Liste anwählen und abspielen. In dem Demo-Projekt wird ein externer Player gestartet, aber natürlich kann das auch intern passieren.
Benötigte Zusatzkomponenten
Die Indys. Ich nutze die 10er-Version. Es kann sein, dass der Code für die 9er etwas anders aussehen muss.
Delphi 2009
Die Shoutcast-Suche scheint generell auf den ASCII-Zeichensatz beschränkt zu sein. D.h selbst Umlaute wie Ä, Ö, Ü werden nicht unterstützt. Die Klasse liefert bei Nicht-Ascii-Zeichen unter Delphi 2009 teilweise andere (verwirrende) Ergebnisse wie unter Delphi 2007 oder früher.
Benötigte Delphi-Fähigkeiten
Um die GUI flüssig bedienbar zu halten, ist der Download der Daten in Threads ausgelagert. Da ich nicht mit TThread arbeite, läuft die Snychronisation über Messages, die von der Hauptform empfangen und verarbeitet werden müssen. Man kann zwar einfach den Code aus dem Beispielprojekt kopieren, aber ein Verständnis dessen, was da passiert, ist sicherlich sinnvoll.
Lizenz, Einschränkungen
MPL 1.1 oder LGPL 2.1 mit folgender Einschränkung.
- Für kommerzielle Projekte ist es erforderlich, den Gebrauch der Shoutcast-Datenbank mit der zuständigen Firma (Nullsoft ?) abzuklären und ggf. vertraglich zu vereinbaren.
Die Unit sollte nicht dafür verwendet werden, zu viele .pls-Dateien hintereinander herunterzuladen um eine lokale Kopie davon zu speichern. Es ist wahrscheinlich, dass dadurch der Nutzer der Software von Shoutcast.com (zeitweise) gebannt wird.