Musikplayer

  • Okay Ich hab das ganze jetzt mit _Soundpos und lenght gemacht :

    [autoit]

    While 1
    If _SoundPos($aSnd_id) = _SoundLength($aSnd_id) Then
    GUICtrlSetData($idBtnOpenPlayPause, "&Play")
    EndIf
    $nMsg = GUIGetMsg()

    [/autoit]

    Also is nur der erste ausschnit, aber jetzt blinkt das am Anfang auch Weil die Zwei dann ja auch gleich sind also Is es eig Unnütze oder?

    _Soundstatus

    Gibt es doch gar keine Abfrage für das Ende Des songs:

    Aus der Hilfe:

    Zitat

    Von MSDN:
    Alle Geräte können die Werte für "not ready", "paused", "playing" und "stopped" zurückgeben.
    Manche Geräte können zusätzlich die Werte für "open", "parked", "recording" und "seeking" zurückgeben.

  • Hallo CF,

    mach es so und das Blinken hat ein Ende:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <Sound.au3>
    #include <Guislider.au3>

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

    Global $aSnd_id, $iLength, $bSlider = True
    #region ### START Koda GUI section ### Form=
    $Form1_1 = GUICreate("Musikplayer by [CF[*Gaming]", 501, 154, 192, 124)
    $idBtnOpenPlayPause = GUICtrlCreateButton("&Öffnen", 8, 112, 113, 33, BitOR($BS_ICON, $WS_GROUP))
    GUICtrlSetFont(-1, 18, 400, 0, "X-Files")
    $idBtnStop = GUICtrlCreateButton("&STOP", 128, 112, 113, 33, $WS_GROUP)
    GUICtrlSetFont(-1, 18, 400, 0, "X-Files")
    ;$Button3 = GUICtrlCreateButton("Pause", 250, 112, 113, 33, $WS_GROUP);
    ;GUICtrlSetFont(-1, 18, 400, 0, "X-Files")
    $idSldrPos = GUICtrlCreateSlider(8, 16, 481, 25, $TBS_TOOLTIPS)
    GUICtrlSetLimit($idSldrPos,100, 1)
    $Label1 = GUICtrlCreateLabel("00:00", 88, 56, 100, 36)
    GUICtrlSetFont(-1, 20, 400, 0, "Arial")
    $Label2 = GUICtrlCreateLabel("00:00", 320, 56, 100, 36)
    GUICtrlSetFont(-1, 20, 400, 0, "Arial")
    $Label3 = GUICtrlCreateLabel("/", 248, 56, 12, 36)
    GUICtrlSetFont(-1, 20, 400, 0, "Arial")
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    AdlibRegister("_GetPos", 1000)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $idBtnOpenPlayPause
    $sBtnText = GUICtrlRead($idBtnOpenPlayPause)
    Switch $sBtnText
    Case "&Öffnen"
    $sFile = FileOpenDialog("Musikplayer by [CF[*Gaming]", "E:\Music", "Musik (*.mp3)", 1);Öffnet eine .mp3-Datei
    ;~ WinSetTitle( "Musikplayer by [CF[*Gaming]", "", "Musikplayer by [CF[*Gaming]\" & $sFile)
    $aSnd_id = _SoundOpen($sFile);Öffnet eine die .mp3 aus $File
    GUICtrlSetData($Label2, _SoundLength($aSnd_id));Gibt die Länge des Liedes zurück
    $iLength = _SoundLength($aSnd_id, 2) / 1000
    GUICtrlSetLimit($idSldrPos,$iLength, 1)
    _SoundPlay($aSnd_id);Startet das Lied
    GUICtrlSetData($idBtnOpenPlayPause, "&Pause")
    Case "&Play"
    _SoundResume($aSnd_id)
    GUICtrlSetData($idBtnOpenPlayPause, "&Pause")
    Case "&Pause"
    _SoundPause($aSnd_id)
    GUICtrlSetData($idBtnOpenPlayPause, "&Play")
    EndSwitch
    Case $GUI_EVENT_PRIMARYDOWN
    $bSlider = False
    Case $GUI_EVENT_PRIMARYUP
    $bSlider = True
    Case $idSldrPos
    $bSlider =False
    $iSS = GUICtrlRead($idSldrPos)
    consolewrite("Neue Pos in Seknden:" & $iSS & @CRLF)
    Local $iHH = Int($iSS / 3600)
    $iSS = Mod($iSS, 3600)
    Local $iMM = Int($iSS / 60)
    $iSS = Mod($iSS, 60)
    consolewrite($iHH & ":" & $iMM & ":" & $iSS & @CRLF)
    _SoundSeek($aSnd_id, $iHH, $iMM, $iSS)
    _SoundPlay($aSnd_id)
    $bSlider =True
    Case $idBtnStop
    _SoundStop($aSnd_id);Stopp das Lied
    GUICtrlSetData($idBtnOpenPlayPause, "&Öffnen")
    EndSwitch
    WEnd

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

    Func _GetPos()
    $iPos = _SoundPos($aSnd_id, 2) / 1000
    GUICtrlSetData($Label1, _SoundPos($aSnd_id));Zeigt die wie weite das Lied schon ist
    if $bSlider Then GUICtrlSetData($idSldrPos, $iPos)
    if _SoundPos($aSnd_id, 2) = _SoundLength($aSnd_id, 2) and $iPos >0 Then GUICtrlSetData($idBtnOpenPlayPause, "&Play")
    EndFunc ;==>_GetPos

    [/autoit]

    mfg (Auto)Bert

  • Ah thx funkitoniert alles:D

    Edit: doch nich er Springt nicht auf öffnen um:
    Du hattest da eh noch Play stehen :D
    Also ich hab umgeändert in Öffnen und es geht nihc

  • Hallo CF,

    Edit: doch nich er Springt nicht auf öffnen um:
    Du hattest da eh noch Play stehen :D
    Also ich hab umgeändert in Öffnen und es geht nihc

    ich habe mich an diesem Post orientiert:


    Wenn ich Zeile 81 so ändere:

    [autoit]

    if _SoundPos($aSnd_id, 2) = _SoundLength($aSnd_id, 2) and $iPos >0 Then GUICtrlSetData($idBtnOpenPlayPause, "&Öffnen")

    [/autoit]

    klappt es bei mir,

    mfg (Auto)Bert