WebradioRecorder

    • Beta

    Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von SpaceyX.

      WebradioRecorder

      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 :thumbup: 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

      VB.NET-Quellcode

      1. handling = handling.self


      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!
      Dateien
      Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
      Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
      Wieso sollte es mit anderen Framebasierenden Streams wie ogg, aac usw. nicht klappen. Du musst ansich nur nen Puffer ausm ResponseStream lesen und in ne Datei schreiben. Die Decoder suchen sich dann die Frames schon selber raus. Natürlich haste dann vll. keine Shoutcast Infos usw. aber die Musik geht. Also zumindest bei mir war das in unter 100 Zeilen drinnen (natürlich ohne Shoutcast-Protokoll aber das überspringen die Decoder einfach). Ansonsten nice bis auf nen kleinen schönheitsfehler propertyname GROSS.


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Wäre verdammt hilfreich, wenn noch mehr Stream-ARten kommen!
      Mfg: Gather
      Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


      Huhu Leute,

      ich entwickel die .dll ja noch weiter. Hab nur im Moment ne totale Coding-Blockade im Schädel. Hab viel zu viel gemacht die letzte Zeit. Geht bald weiter....!!!!!!
      Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
      Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o