WebRadio - Mein 2. Projekt

  • Hallo,

    nach meinem ersten Projekt, ein Taschenrechner, musste ich mich die letzten wochen erstmal mit VB beschäftigen. Möcht nebenbei jedoch gern weiter mit AutoIt üben.

    Mein neues Projekt soll ein Radio Streamer sein welcher URL's widergibt. Ich bin grad noch in der Entwicklung jedoch gibt es ein Problem welches mein Programm immer wider zum beenden zwingt. Ich hoffe Ihr könnt mir dabei helfen und auch gleich Tips und Anregungen mitgeben.

    Und kann mir bitte wer sagen wie ich das machen kann das man den AutoIt-Code ein- und ausblenden kann ?? :)


    Spoiler anzeigen
    [autoit]


    #cs ----------------------------------------------------------------------------
    AutoIt Version: 3.3.6.1
    Author: Philip Zuschlag
    Script Function:
    Template AutoIt script.
    #ce ----------------------------------------------------------------------------
    #include <GUIConstants.au3>
    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    AutoItSetOption ("MustDeclareVars",1) ; Variablen müssen Deklariert werden !

    [/autoit] [autoit][/autoit] [autoit]

    #region ; Globale Variablen / Constanten
    Const $url1Live = 'http://www.wdr.de/wdrlive/media/einslive.asx' ;URL für den Radio Sender 1Live
    Const $urlFFN = 'http://player.ffn.de/tunein_ffn.asx' ;URL für den Radio Sender FFN
    Const $urlWDR = 'http://www.wdr.de/wdrlive/media/wdr2.asx' ;URL für den Radio Sender WDR
    Const $urlNDR = 'http://ndr-ndr1niedersachsen-hi-wma.wm.llnwd.net/ndr_ndr1niedersachsen_hi_wma' ;URL für den Radio Sender NDR
    Const $urlYouFM = "http://metafiles.gl-systemhaus.de/hr/youfm_2.m3u" ;URL für den Radio Sender YouFM
    Global $DesktopRadio
    Global $ButtonPlay
    Global $ButtonBreak
    Global $ButtonStop
    Global $ButtonMute
    Global $ButtonUnmute
    Global $RadioSender
    Global $SliderVolume
    Global $Progress
    Global $Menu
    Global $Menu1Item1
    Global $Menu1Item2
    Global $Menu2
    Global $Menu2Item1
    Global $Menu3
    Global $Menu3Item1
    Global $Menu3Item2
    Global $Menu4
    Global $Menu4Item1
    Global $nMsg
    GLobal $SliderVolume
    GLobal $slVolume
    Global $oWMP
    ;-------------------------------------------
    #endregion
    Func WinPlayer ()
    $oWMP = ObjCreate ( "WMPLayer.ocx" ) ;Erstellt einen Imagineren WindosMediaPlayer
    ;Default URL:
    $oWMP.URL = $url1Live ;Stellt die Eigenschaft "URL" zu dem Online-Stream
    $oWMP.controls.stop() ;Stopt die Widergabe

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc
    Func ShowGui ()
    #include <GUIConstants.au3>
    #Region ### START Koda GUI section ### Form=l:\!__philip__!\koda\forms\desktopradio.kxf
    $DesktopRadio = GUICreate("DesktopRadio", 331, 141, 416, 425)
    GUISetBkColor(0x808080)
    $RadioSender = GUICtrlCreateCombo("RadioSender", 8, 16, 201, 25)
    GUICtrlSetData(-1, "You-Fm|Eins Live|Radio FFN|WDR|NDR", "You-Fm") ;Setzt die Werte
    $SliderVolume = GUICtrlCreateSlider(232, 48, 89, 17)
    ;GUICtrlSetData(-1,$oWMP.settings.volume(50)) ; Hier wird der Startwert gelesen, bei mir 50
    $Progress = GUICtrlCreateProgress(248, 16, 73, 17)
    $ButtonStop = GUICtrlCreateButton("<", 32, 56, 33, 33, 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Webdings")
    $ButtonBreak = GUICtrlCreateButton(";", 144, 56, 33, 33, 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Webdings")
    $ButtonPlay = GUICtrlCreateButton("4", 88, 56, 33, 33, 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Webdings")
    $ButtonUnmute = GUICtrlCreateButton("²", 280, 72, 25, 25, 0)
    GUICtrlSetFont(-1, 19, 400, 0, "Webdings")
    $ButtonMute = GUICtrlCreateButton("y", 248, 72, 25, 25, 0)
    GUICtrlSetFont(-1, 12, 400, 0, "Webdings")
    $Menu = GUICtrlCreateMenu("&Datei")
    $Menu1Item1 = GUICtrlCreateMenuItem("&URL Hinzufügen", $Menu)
    $Menu1Item2 = GUICtrlCreateMenuItem("B&eenden (ALT + F4)", $Menu)
    $Menu2 = GUICtrlCreateMenu("Optionen")
    $Menu2Item1 = GUICtrlCreateMenuItem("Einstellun&g", $Menu2)
    $Menu3 = GUICtrlCreateMenu("&Über")
    $Menu3Item1 = GUICtrlCreateMenuItem("Entwickler", $Menu3)
    $Menu3Item2 = GUICtrlCreateMenuItem("Version 0.2 Beta", $Menu3)
    $Menu4 = GUICtrlCreateMenu("?")
    $Menu4Item1 = GUICtrlCreateMenuItem("&Hilfe (F1)", $Menu4)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func GuiAuswerten ($oWMP)
    Local $_fEnde = False ; Varriable zum Beenden des Programmes
    Local $nMsg ;Rückgabewert der GUI
    Local $AusgangsLautstaerke ;Lautstärke welche nach betätigen der UnMute-Teste gesetzt wird
    Local $sLine1 ;Text der MsgBox --> About (1 Reihe)
    Local $sLine2 ;Text der MsgBox --> About (2 Reihe)
    While not $_fEnde
    Switch $nMsg ; Rückgabewert der Gui
    Case $GUI_EVENT_CLOSE ;Schließen
    $_fEnde = False ;Setzt die Variable welche den schließen Befehl gibt auf True
    Case $ButtonPlay ;Play - Button
    $oWMP.controls.play()
    Case $ButtonStop ;Stop - Button
    $oWMP.controls.stop()
    Case $RadioSender ;Sender-Auswahlfensters
    Switch GUICtrlRead($RadioSender)
    Case "You-FM" ;Wenn "You-FM" in der Liste ausgewählt wird...
    $oWMP.URL = $urlYouFM ;...dann öffne Link $urlYouFM
    Case 'Eins Live' ;Wenn "Eins Live" in der Liste ausgewählt wird...
    $oWMP.URL = $url1Live ;...dann öffne Link $url1Live
    Case 'Radio FFN' ;Wenn "Radio FFN" in der Liste ausgewählt wird...
    $oWMP.URL = $urlFFN ;...dann öffne Link $urlFFN
    Case 'WDR' ;Wenn "WDR" in der Liste ausgewählt wird...
    $oWMP.URL = $urlWDR ;...dann öffne Link $urlWDR
    Case 'NDR' ;Wenn "NDR" in der Liste ausgewählt wird...
    $oWMP.URL = $urlNDR ;...dann öffne Link $urlNDR
    EndSwitch
    Case $SliderVolume ;Lautstärken Slider !!!!!!!!!!!!!!!!!!!!!!!!!
    $oWMP.settings.volume = GUICtrlRead($slVolume)
    Case $ButtonMute ;Mute - Button
    $AusgangsLautstaerke = $oWMP.volume() ;Speichert die aktuelle Lautstärke - Einstellung in die Varriable $AusgangsLautstaerke
    $oWMP.settings.volume(0) ;Setzt die aktuelle Lautstärke auf 0
    Case $ButtonUnmute ;UnMute - Button
    $oWMP.settings.volume($AusgangsLautstaerke) ;Setzt die Lautstärke wider zurück auf den Wert wie bevor betätigen des Buttons Mute
    ;----------Menu----------Menu----------Menu----------Menu----------Menu----------Menu----------Menu----------Menu----------
    Case $Menu1Item1 ;
    Case $Menu1Item2 ;Programm beenden
    $_fEnde = True
    Case $Menu2Item1
    Case $Menu3Item1
    Case $Menu3Item2
    $sLine1 = "WebRadioStreamer by Philip Zuschlag"
    $sLine2 = "__Philip.Zuschlag@googlemail.de__"
    MsgBox(64, "About", $sLine1 & @CRLF & @CRLF & $sLine2 )
    Case $Menu4Item1
    ;Version
    EndSwitch
    Wend
    EndFunc
    Func Main () ; Main Funktion
    ShowGUI() ; Zeige die GUI
    WinPlayer() ; Startet den Player
    EndFunc
    Main ()

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Gruß Zuschy

    Einmal editiert, zuletzt von Zuschy (13. September 2010 um 16:34)

  • Hi Zuschy,

    um dein Script zu verhüllen einfach vor und hinter das

    Code
    [autoit][/autoit]

    ein

    Code
    [spoiler]...[/spoiler]


    Zu deinem Code: Nimm mal die ganzen Funktionen raus, die brauchst du doch gar nicht. (Eine Funktion wird angelegt, wenn ein Vorgang mehrere male im Script wiederholt wird.)
    Bau am besten noch ein, dass das Script sich beendet, wenn man auf den "x" Buttun am Fenster drückt. Dazu einfach eine neue "Case", in der du nach "-3" abfragst, und dann "Exit" aufrufst. (Oder $GUI_EVENT_CLOSE)
    Das Script beendet sich, weil es durch läuft, du hast vergessen, die Funktion mit der While-Schleife zu starten.
    Viel mehr kann man da noch nicht zu sagen.

    MfG black_skorpi