Radio abacado Client

    • Release

    Es gibt 54 Antworten in diesem Thema. Der letzte Beitrag () ist von KlyX.

      Radio abacado Client

      Hallo zusammen

      Nach relativ langer VB-Abstinenz (hatte im Job genug HTML und CF um die Ohren ;)), habe ich mich mal wieder an ein Projekt gewagt:

      Hintergründe
      Ich betreibe schon seit längerem ein kleines Webradio für einige Bekannte. Einmal in der Woche allerdings nur. In diesen moderierten Sendungen gibt es meistens eine Art Top20, mit Songs die die Hörer gewünscht haben. Diese konnten Sie bislang mittels einer PHP/MySQL Anwendung rein- oder rausvoten. Das Panel dazu hat ein Bekannter von mir damals gecodet, als PHP für mich noch ein Fremdwort war. Da er seine Seite umgekrempelt hat und alles komplexer geworden ist, habe ich nun beschlossen, alles in ein Programm reinzuhauen - mit einigen interessanten Featuers.
      Die Sendung von Radio abacado findet immer Donnerstags von 20-22 Uhr statt (also heute zum erstenmal im neuen Jahr wieder), ab nächster Woche vermutlich jeweils Mittwochs.

      Und das kann das Programm:
      - Abspielen des Radiostreams (start/Stop inkl. Überprüfung ob das Radio überhaupt online ist)
      - wenn Option aktiviert: Aufnahme des Streams, den man gerade hört und Speichern als MP3
      - Anzeige von Titel und Interpret (haben einige bemängelt da Shoutcast nicht jedem Player sagt, was grad läuft) - wird auch angezeigt, wenn man selbst gerade nicht zuhört
      - Anzahl Hörer
      - Wunschbox mit Wünschen der Hörer
      - Songhistory der letzten 10 Songs
      - Votingpanel:
      o Registration und Login
      o Voten der Songs: rein/raus/Enthaltung durch einfaches anklicken der Platznummer.
      o Farben zeigen den jeweiligen Status an
      o Prüft ob Voting offen oder geschlossen ist und blendet das Voting dementsprechend ein oder aus
      - Miniplayer (da das Ding doch ziemlich Platz braucht auf dem Desktop) lediglich mit Play, Stop und Titelanzeigen
      - Updater (noch im Bau, prüft aber bereits ob die verwendete Version noch aktuell ist. Falls nicht wird das Programm beendet)
      - Soundsnippets: Wenn die entsprechende Option aktiv ist, nimmt das Programm beim Songwechsel jeweils einen kurzen Ausschnitt des Songs auf und legt diesen in "\recordings\songhistory" ab.
      - Die gesetzte Lautstärke des Players wird beim Beenden gespeichert und beim Neustart wieder geladen
      - Bei geschlossenem Voting können nun die Ergebnisse des letzten Votings angeschaut werden.
      Noch fehlend, aber für das nächste Update geplant:
      - Uploadfunktion von Wünschen in ein geschütztes Verzeichnis (einfacher für den Moderator)
      - Direktes Abspielen seiner Aufnahmen im Programm
      - Anhören von bereits gespielten Votingsongs (Ausschnitt von 30 Sekunden)
      - Programm merkt sich Fensterposition beim Beenden
      - Passwort-Recovery
      - Überprüfung der E-Mail-adresse (ob @ und . drin ist)
      - Aktuelle Infos
      - Option, dass sich user per Mail über kommende Sendungen informieren lassen können
      Die letzten Bugfixes

      • Soundsnippets: Wenn die entsprechende Option aktiv ist, nimmt das Programm beim Songwechsel jeweils einen kurzen Ausschnitt des Songs auf und legt diesen in "\recordings\songhistory" ab.
      • Die gesetzte Lautstärke des Players wird beim Beenden gespeichert und beim Neustart wieder geladen
      • Bei geschlossenem Voting können nun die Ergebnisse des letzten Votings angeschaut werden.
      • Das Zurücksetzen der eigenen Stimmen bei geschlossenem Voting ist nun nicht mehr möglich.
      • Fehler in der Aufnahmefunktion behoben
      • About-Dialog eingefügt (bei Klick auf das Copyright)
      • Diverse kleinere Bugs gefixt
      Die aktuelle Version ist 1.2 und via Updater von 1.1.1 oder 1.1.0 updatebar


      Datenbasis:
      Als Datenbasis dient zuerst mal der Shoutcastserver (logisch ;)) sowie eine serverseitige MySQL-Datenbank, welche für die Logindaten, die Wünsche und die Votingsongs + Votings zuständig ist.

      Diverse Infos:
      Version: 1.2
      Sprache: VB6
      Benötigt: Nur Setup. Alle OCX/DLL sind im Paket enthalten; Die beim Update zusätzlich benötigten Datendateien, werden vom Programm selbst angelegt.
      .NET: nix .NET ;)
      Grösse: 11,7 MB (kann man sicher sein, dass die inet.dll oder die dll vom wmplayer nicht benötigt wird, wäre das Setup kleiner ;))
      Grösse der EXE: 344 KB

      Screenshots:

      [Splashscreen] [Mainscreen] [Registration] [Voting] [Wunschbox] [Miniplayer] [Warten]

      Download: Hier klicken


      So, nun freue ich mich über Rückmeldung von euch :D

      Gruss
      KlyX
      Chris' Weblog - Mein Blog rund um Vieles :D

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „KlyX“ ()

      Werde es testen, aber: wieso läufts nur 1x die Woche?!!

      Design sieht super aus. Ein Schwarzes Fenster hätte noch sehr gut reingepasst.
      "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
      @Freakstar @milaim: Danke, hat auch einiges an Zeit gekostet bis ich zufrieden war damit.

      @milaim: Ist einfach ein Zeitproblem ;) Und ständig Zufallssound dudeln mag ich auch nicht und wie gesagt: Ist ein kleines Radioprojekt. Aber habe vor, es demnächst ein wenig auszubauen. Aber das ist noch in Planung.
      Was meinst du mit Schwarzes Fenster?
      Chris' Weblog - Mein Blog rund um Vieles :D
      Der Rahmen könnte ja Schwarz sein.. gibts ja von krypton diese Forms, glaub ich.. 2007Black heisst der style glaub ich.. das würde doch zu deinem Design super passen.
      "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
      Was mit VB gehen würde wären Skins. Ich will aber die Anwendung nicht unnötig fetter machen, als sie schon ist (bzw. die ganzen OCX und DLLs). Von daher bleibe ich noch bei den altbackenen Rahmenfenstern ;-).

      Werde nun gleich mal Radioserver anmachen. Wer also testen möchte, der kann das ab ca. 10:15 tun.

      Gruss
      KlyX
      Chris' Weblog - Mein Blog rund um Vieles :D
      Nicht schlecht.. ;) Nur das Voting system müsstest mir nochmal erklären..



      /Edit: Habe für dich ein Fehler zu melden:

      1. habe mich ausgeloggt.

      2. Radio ausgestellt.

      3. Beendet.

      Jetzt hab ich diese meldung "Programm wird beendet" schon seit 1,5 min

      Da hast wohl einen kleinen bug beim beenden. Bitte überprüfen.
      "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
      @powerprogger: Ich sagte nicht es würde nicht gehen ;) Aber ich habe bisher nicht vor sie zu nutzen :D

      @milaim: Danke für den Hinweis. Ich frage mich gerade wo genau das Problem ist. Kannst du das Problem reproduzieren bei jedem Mal? Wenn ja würde ich dir nachher mal ne EXE zuschicken die einen kleinen Log schreibt.

      Das Voting-System ist ganz einfach: Es sind 20 Songs. Diese sind entweder von mir im System oder gewünscht worden. Jeweils wenn die Sendung am Donnerstag abend läuft, können die User diese Songs rein- oder rausvoten. Wie eine Art Hitparade. Die Songs laufen natürlich in dieser Sendung auch.
      Weissgelbe Titel bedeuten kein Voting. Wenn du auf die Platznummer klickst wechseln die Farben. Ist der Song grün, ist er von dir reingewählt, ist er rot, wählst du ihn raus.

      Das Resultat der Abstimmung wird jeweils am Schluss der Sendung bekannt gegeben.
      Derzeit ist das noch so gestrickt, dass ein Song fliegt, sobald er mehr raus- als reinstimmen hat. Die anderen Songs rücken dann auf. Ich werde aber bei Gelegenheit mal eine Berechnung machen, die die Songs je nach dem nach oben oder nach unten schiebt.

      KlyX
      Chris' Weblog - Mein Blog rund um Vieles :D
      Hey, ich habs für dich nochmal gemacht.. der Selbe Fehler nochmal.

      Kannst mir dann das Log-Programm zuschicken, cih werds dann laufen lassen.
      "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
      Okay. Dann mal los: radio.abacado.net/radio.exe
      Ins Programmverzeichnis kopieren und starten. Die Logdatei schreibt sich in den \data Ordner und heisst log.txt.
      Ist jetzt mal nur ein knapper Log damit ich zumindest das Problem einschränken kann.
      Chris' Weblog - Mein Blog rund um Vieles :D
      So hab mal (auf der Arbeit) das Programm mal 5 min so im "Programm wird beendet..." modus laufen lassen.. geschieht nix... in der Log Datei ist auch nichts großartiges:

      Quellcode

      1. Log gestartet
      2. warten.wartenmessage.Caption geschrieben
      3. GIF-Animation gestartet
      4. warten Visible gemacht
      5. Timer1 aufgerufen
      6. Stopbutton aufgerufen
      7. Warteschlaufe eingelegt
      8. main unsichtbar gemacht
      9. Log Ende
      "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
      Hm, das ist wirklich extremstens strange... Ich werde mal schauen, ob ich das Fenster mit einer Unload-Form belege.
      Was komisch ist direkt nach dem "Log Ende" kommt der End-Befehl für das Programm. Da müsste ja das Fenster zugehen...
      Chris' Weblog - Mein Blog rund um Vieles :D
      Naja, irgendwo hängt der noch. Bin ich denn der einzige mit dem Fehler??

      Achso, noch einige Infos, vielleicht könnts damit zu tun haben:

      Windows Vista Enterprise 64bit version hab ich drauf.. naja, dann müsst aber das ganze Programm verrecken. hehe
      "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
      Ich habe bereits mit vier Personen Betatest gemacht. Das ging einwandfrei. 3x Win xp und einmal Vista, allerdings nicht Enterprise ;)
      Hast du ev. die Möglichkeit es auf einem anderen PC noch zu testen?

      Ich verstehe einfach nicht, wieso er den End-Befehl nicht schluckt... grml.

      KlyX
      Chris' Weblog - Mein Blog rund um Vieles :D
      Okay, habs grad auf einem Virtual PC getestet (Windows XP Pro SP2)

      Da gehts nicht mal weiter als das einloggen... Hab dir mal ein Screenshot gemacht.



      Danach stürzt das ding auch ab...
      "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
      Okay, diesen Fehler allerdings kann ich entschlüsseln ;) Scheint, als ob die Verbindung zum MySQL-Server nicht möglich ist. Hast du gross Firewall da drauf? Vermutlich wird der Standard-Port für MySQL blockiert.
      Aber gut hast du das gesehen. Muss da wohl noch eine Fehlerschleife einbauen.
      Chris' Weblog - Mein Blog rund um Vieles :D