Hallo Leute.
Da ich schon etwas länger in AutoIT Code habe ich mich mal an einen Webradio-Player ran gemacht.
Erfolgreich.
Sources :
[hide]
C
Const $url1Live = 'http://www.wdr.de/wdrlive/media/einslive.asx'Const $urlFFN = 'http://player.ffn.de/tunein_ffn.asx'Const $urlWDR = 'http://www.wdr.de/wdrlive/media/wdr2.asx'Const $urlNDR = 'http://ndr-ndr1niedersachsen-hi-wma.wm.llnwd.net/ndr_ndr1niedersachsen_hi_wma'
;Erstellt ein Windows Media Player Objekt (http://msdn.microsoft.com/en-us/library/bb249680(VS.85).aspx)$oWMP = ObjCreate ( "WMPLayer.ocx" );Default URL:$oWMP.URL = $url1Live ;Stellt die Eigenschaft "URL" zu dem Online-Stream$oWMP.controls.stop()
;Array f?r die einzelnen Zustande (Info)Dim $arrStatus[12]$arrStatus[0] = 'Unbekannt'$arrStatus[1] = 'Gestoppt'$arrStatus[2] = 'Pause'$arrStatus[3] = 'Playing'$arrStatus[4] = 'ScanForward'$arrStatus[5] = 'ScanReverse'$arrStatus[6] = 'Buffering'$arrStatus[7] = 'Warten'$arrStatus[8] = 'MediaEnded'$arrStatus[9] = 'Transitioning'$arrStatus[10] = 'Bereit'$arrStatus[11] = 'Wiederverbinden...'
; Variable f?r das Anzeigen der Info, damit ein blinken vermieden wird.$lastStatus = 0
#include <ButtonConstants.au3>#include <ComboConstants.au3>#include <GUIConstantsEx.au3>#include <StaticConstants.au3>#include <WindowsConstants.au3>#Region ### START Koda GUI section ### Form=$frmMain = GUICreate("Radio by KickME V0.1", 304, 140, 192, 224)$comSender = GUICtrlCreateCombo("", 72, 8, 225, 25)GUICtrlSetData(-1, "Eins Live|Radio FFN|WDR|NDR", "Eins Live")$lblSender = GUICtrlCreateLabel("Senderliste:", 8, 8, 59, 17)$cmdPlay = GUICtrlCreateButton("Abspielen", 72, 40, 73, 33, $WS_GROUP)$cmdStop = GUICtrlCreateButton("Stop", 160, 40, 73, 33, $WS_GROUP)$lblInfo = GUICtrlCreateLabel("Info...",72,80,200)$lblPlayTime = GUICtrlCreateLabel("00:00:00",260,120)
; Das ist der Slider f?r die Lautstdrke$slVolume = GUICtrlCreateSlider(49, 100, 200, 25)GUICtrlSetData(-1,$oWMP.settings.volume()) ; Hier wird der Startwert gelesen, bei mir 50
GUISetState(@SW_SHOW)#EndRegion ### END Koda GUI section ###
; Varible zeit wir auf 0 gesetzt$zeit = 0
While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit ; Hier wird die Lautstdrke gesetzt Case $slVolume $oWMP.settings.volume = GUICtrlRead($slVolume) Case $comSender ; Falls grade ein Stream abgespielt wird, wird er gestoppt $oWMP.controls.stop() Switch GUICtrlRead($comSender) Case 'Eins Live' $oWMP.URL = $url1Live ;Stellt die Eigenschaft "URL" zu dem Online-Stream Case 'Radio FFN' $oWMP.URL = $urlFFN ;Stellt die Eigenschaft "URL" zu dem Online-Stream Case 'WDR' $oWMP.URL = $urlWDR ;Stellt die Eigenschaft "URL" zu dem Online-Stream Case 'NDR' $oWMP.URL = $urlNDR ;Stellt die Eigenschaft "URL" zu dem Online-Stream EndSwitch $oWMP.controls.play() ; beim wechseln des Streams soll wieder von vorn gezdhlt werden. $zeit = TimerInit() Case $cmdStop $oWMP.controls.stop() Case $cmdPlay $oWMP.controls.play() EndSwitch $curStatus = $oWMP.playstate If $curStatus <> $lastStatus Then GUICtrlSetData($lblInfo, $arrStatus[$curStatus]) $lastStatus = $curStatus EndIf
; ist der Status auf gestoppt (1) oder unbekannt (0) ; wir die Zeitanzeige wieder auf 0 gesetzt und die ; Variable zeit auf 0 If $curStatus = 1 or $curStatus = 0 Then $zeit = 0 GUICtrlSetData($lblPlayTime,'00:00:00') ; Wird der Stream abgespielt und ist die Variable ; zeit auf 0, dann setze zeit auf die Init Zeit ElseIf $curStatus = 3 And $zeit = 0 Then $zeit = TimerInit() EndIf
; ist zeit grf?er 0 berechne die Zeit ; und gib sie aus If $zeit > 0 Then ; wandele die Millisekunden in Sekunden um $diff = round(round(TimerDiff($zeit),0) / 1000,0) ; Berechne Stunden, Minuten und Sekunken und gib sie mit ; f?hrenden Nullen aus. GUICtrlSetData($lblPlayTime,StringFormat("%02d:%02d:%02d",((($diff-mod($diff,60))/60)-mod(($diff-mod($diff,60))/60,60))/60,mod(($diff-mod($diff,60))/60,60),mod($diff,60))) EndIfWEndexit
$oWMP.URL = "http://www.wdr.de/wdrlive/media/einslive.asx" ;Stellt die Eigenschaft "URL" zu dem Online-Stream;von hr3.de ein, sollte automatisch starten
$oWMP.controls.play() ;explizit starten
While $oWMP.playstate > 2 ;solang der Windows Media Player den Stream lddt, buffert, abspielt usw. Sleep ( 10 ) ;schlafen, damit AutoIt sich nicht beendet und die Musik aufhfrtWEnd
Alles anzeigen
[/hide]