![]() |
webradio aufnehmen
Hallo!
Ich möchte den Webradio-Stream eines Shoutcast Radios aufzeichnen. In den PLS-Datei sind die direkten Links in folgender Form: ![]() Nun Frage ich mich als interessiertem Noob wie connecte ich den Server? Kann ich das über HTTP-GET machen? Oder verwendet man Sockets? Ist ja nicht nur ne ip mit nem port - das /stream/1032 stört irgendwie... Und welche Komponenten verwendet man da heutzutage (habe gesehen das es verschiedene Sockets-Komponenten - gibt TStreamSocket, TTcpClient...) Ach ja, das ganze sollte auch in einer nicht Dialog/fensterbasierten Umgebung funktionieren. Grüße, André |
Re: webradio aufnehmen
Zitat:
Port 80 ist ja der normale HTTP - Port. Im Prinzip müsstest du die Datei in den Cache laden und parallel abspielen (und danach das schon gehörte wieder aus dem Cache löschen). |
Re: webradio aufnehmen
Du könntest einfach das populäre Programm
![]() |
Re: webradio aufnehmen
Das abspielen ist was für später (will ne Timeshift-Funktionalität haben)
Aber WIE mach ich nun das rauslesen? Btw. gibts für HTTP auch ne nicht Indy-Komponente? Ein externes Programm will ich nicht verwenden. Wär ja zu einfach ;-) |
Re: webradio aufnehmen
ok, hab nun TidHTTP und get verwendet (
![]() Damit lässt sich der Stream in eine endlose Datei schreiben. 2 Probleme dabei: 1. Wie mach ich daraus einen ringpuffer? Sprich: Wie sagt ich dem Get das es nur zb. 1MB runterläd und dann wieder vorne anfängt? Schwerwiegender ist 2. 2. Die Datei lässt sich während des schreibens weder mit Winamp noch mit dem Windows Media Player öffnen, obwohl ich
Code:
verwende. Aber das ist Vorraussetzung für mich!
lStream:=TFileStream.Create('C:\Test.mp3', fmCreate or fmShareDenyNone);
Dazu Ideen? Grüße, André |
Re: webradio aufnehmen
Zitat:
|
Re: webradio aufnehmen
2. hab ich jetzt wie folgt gelöst:
Delphi-Quellcode:
da
lStream:=TFileStream.Create('C:\Test.mp3', fmCreate or fmShareDenyNone);
lStream.Free; lStream:=TFileStream.Create('C:\Test.mp3', fmOpenWrite or fmShareDenyNone);
Delphi-Quellcode:
bringt eine or Verknüpfung natürlich nicht wirklich was ;-)
fmCreate = $FFFF;
Nun muss ich "nur noch" 1. lösen - mal schaun! André P.S. BASS ost ne feine sache, kostet aber für kommerzielle Anwendungen Geld :( |
Re: webradio aufnehmen
Ich weiß nicht, ob du das Programm umbedingt selber schreiben möchtest und wie weit du schon gekommen bist. Ich würde folgendermaßen machen:
Mit dem kostenlosen Programm ![]() Ben P.S.: Das Programm bietet zusätzlich auch noch die Funktion, dass schon vor dem Klicken auf Rec aufgenommen wird. Siehe auch ![]() |
AW: webradio aufnehmen
Hallo!
Ich begehe hier jetzt mal den verwerflichen Akt der Leichenfledderei und hole diesen betagten Thread wieder hoch, weil mein Problem genau hier schon mal angerissen aber nicht abschließend beantwortet ist: Zitat:
Vielmehr würde mich interessieren, wie man mit Indy quasi einen Endlos-Stream realisiert. Man braucht ja einen gewissen Vorlauf an Nutzdaten im Stream und müsste die von BASS bereits wiedergegebenen Daten verwerfen, damit einem nicht irgendwann ein Puffer voll läuft. Das Problem ist also, genug Nutzdaten im Puffer vorzuhalten, die Wiedergabe zu synchronisieren und "veraltete" Daten zu verwerfen ohne den Stream zu schließen. Da wär ich mal für dein ein oder anderen Tip dankbar. Grüße Cody |
AW: webradio aufnehmen
Hallo,
Zitat:
![]() einbeliebigername. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 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