Name des Programms:
WebradioRecorder
Beschreibung:
Ermöglich das Aufzeichnen von MP3-Streams.
Vor einigen Tagen war hier im Forum die Frage, wie man ohne WindowsMediaPlayer-Control Streams abspielen kann. Dem TE gings wohl um die .dll, die eingebunden werden muss. Ich hab mich dann kurz hingesetzt und probiert. Nun hab ich das Ganze etwas erweitert und in ne .dll gepackt. @TE des Threads: kannst Dich ja melden, dann geb ich Dir den Quellcode. Übrigens, den Quellcode kann jeder haben, nur kurze PN an mich.
Nun hab ich mich auch nicht wirklich in das Thema eingelesen und das Ganze funktioniert atm auch nur mit MP3-Streams, die über Shoutcast gestreamt werden. Also MMS, und was es sonst noch so gibt, wird wohl nicht klappen. Das Protokoll bei Shoutcast ist recht einfach, viel gibts da nicht, ausser ein paar Infos und den Stream. Was noch nicht klappt, ist die Titelinformationen auslesen. Daran arbeite ich noch.
Klasse WebradioRecorder
Um einen neuen WebradioRecorder zu erzeugen, braucht dieser die URL des Streams und einen Ausgabepfad. Ist dies erfolgreich gewesen, könnt ihr die Aufnahme durch den Aufruf von StartRecording starten. Die Aufnahme wird in einem extra Thread geregelt. Ich hab mich dazu entschlossen, diesen Thread als Background zu kennzeichnen, da er so beim Beenden des Programms automatisch beendet wird. Aber wenn ihr sicher gehen wollt, dann ruft beim Beenden eurer Anwendung AbortRecording auf, diese beendet alle Vorgänge und schliesst alle Ressourcen ordentlich Natürlich ist AbortRecording auch dazu da, die Aufnahme einfach zu unterbrechen. Diese kann natürlch wieder fortgesetzt werden, aber es wird eine neue Datei erzeugt. Zu den Properties erhaltet ihr alle Infos über Intellisense. Per Default löst diese Klasse keine Events aus. Ihr könnt dieses Verhalten über die Property enableEvents steuern.
Eine Sache zur Verwendung ist noch von Interesse:
Der WebradioRecorder gibt euch zwei Möglichkeiten, wie Ihr Streams aufzeichnen könnt. Ihr könnt es automatisch erledigen lassen. Bedeutet, der Recorder generiert selbst einen Dateinamen (Stationname + TimeString, wenn das nicht klappt, nimmt er die IP + TimeString) und speichert die empfangenen Bytes kontinuierlich in den FileStream. So läuft das per Default.
Zweite Möglichkeit. Ihr setzt
Dadurch wird die Property enableEvents automatisch True. Nun wird keine Datei mehr geschrieben, sondern ihr erhaltet im Eventhandler die Empfangenen Bytes und könnt mit diesen anstellen, was ihr wollt. Es geht auch Beides gleichzeitig. Dazu einfach die Events enablen, und das Handling auf auto lassen. Dieses Umschalten kann auch zur Laufzeit ausgelöst werden. Wird das Handling wieder auf auto gesetzt, so werden die Events ebenfalls wieder deaktiviert. Hier aufpassen.
Würd mich freuen, wenn ihr soviele Streams wie nur möglich ausprobiert. Wenn Streams Ärger machen, dann bitte ne PN, mit der URL des Streams, an mich oder einfach hier im Thread posten. Der Recorder ist noch ziemlich Beta und man kann noch viel dran machen, aber dazu brauch ich Infos. Viel Spass beim Testen!!!!!
Screenshot(s):
Verwendete Programmiersprache und IDE:
VB2010 Express
Systemanforderungen:
.NET 3.5
Download:
Anhang
Lizenz/Weitergabe:
Frei für jeden. Wer den Code haben will, bitte PN an mich!
WebradioRecorder
Beschreibung:
Ermöglich das Aufzeichnen von MP3-Streams.
Vor einigen Tagen war hier im Forum die Frage, wie man ohne WindowsMediaPlayer-Control Streams abspielen kann. Dem TE gings wohl um die .dll, die eingebunden werden muss. Ich hab mich dann kurz hingesetzt und probiert. Nun hab ich das Ganze etwas erweitert und in ne .dll gepackt. @TE des Threads: kannst Dich ja melden, dann geb ich Dir den Quellcode. Übrigens, den Quellcode kann jeder haben, nur kurze PN an mich.
Nun hab ich mich auch nicht wirklich in das Thema eingelesen und das Ganze funktioniert atm auch nur mit MP3-Streams, die über Shoutcast gestreamt werden. Also MMS, und was es sonst noch so gibt, wird wohl nicht klappen. Das Protokoll bei Shoutcast ist recht einfach, viel gibts da nicht, ausser ein paar Infos und den Stream. Was noch nicht klappt, ist die Titelinformationen auslesen. Daran arbeite ich noch.
Klasse WebradioRecorder
Um einen neuen WebradioRecorder zu erzeugen, braucht dieser die URL des Streams und einen Ausgabepfad. Ist dies erfolgreich gewesen, könnt ihr die Aufnahme durch den Aufruf von StartRecording starten. Die Aufnahme wird in einem extra Thread geregelt. Ich hab mich dazu entschlossen, diesen Thread als Background zu kennzeichnen, da er so beim Beenden des Programms automatisch beendet wird. Aber wenn ihr sicher gehen wollt, dann ruft beim Beenden eurer Anwendung AbortRecording auf, diese beendet alle Vorgänge und schliesst alle Ressourcen ordentlich Natürlich ist AbortRecording auch dazu da, die Aufnahme einfach zu unterbrechen. Diese kann natürlch wieder fortgesetzt werden, aber es wird eine neue Datei erzeugt. Zu den Properties erhaltet ihr alle Infos über Intellisense. Per Default löst diese Klasse keine Events aus. Ihr könnt dieses Verhalten über die Property enableEvents steuern.
Eine Sache zur Verwendung ist noch von Interesse:
Der WebradioRecorder gibt euch zwei Möglichkeiten, wie Ihr Streams aufzeichnen könnt. Ihr könnt es automatisch erledigen lassen. Bedeutet, der Recorder generiert selbst einen Dateinamen (Stationname + TimeString, wenn das nicht klappt, nimmt er die IP + TimeString) und speichert die empfangenen Bytes kontinuierlich in den FileStream. So läuft das per Default.
Zweite Möglichkeit. Ihr setzt
Dadurch wird die Property enableEvents automatisch True. Nun wird keine Datei mehr geschrieben, sondern ihr erhaltet im Eventhandler die Empfangenen Bytes und könnt mit diesen anstellen, was ihr wollt. Es geht auch Beides gleichzeitig. Dazu einfach die Events enablen, und das Handling auf auto lassen. Dieses Umschalten kann auch zur Laufzeit ausgelöst werden. Wird das Handling wieder auf auto gesetzt, so werden die Events ebenfalls wieder deaktiviert. Hier aufpassen.
Würd mich freuen, wenn ihr soviele Streams wie nur möglich ausprobiert. Wenn Streams Ärger machen, dann bitte ne PN, mit der URL des Streams, an mich oder einfach hier im Thread posten. Der Recorder ist noch ziemlich Beta und man kann noch viel dran machen, aber dazu brauch ich Infos. Viel Spass beim Testen!!!!!
Screenshot(s):
Verwendete Programmiersprache und IDE:
VB2010 Express
Systemanforderungen:
.NET 3.5
Download:
Anhang
Lizenz/Weitergabe:
Frei für jeden. Wer den Code haben will, bitte PN an mich!
Die Unendlichkeit ist weit. Vor allem gegen Ende.
Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken.
Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken.