Wie mache ich des damit ich bei meinem musik Player vor und zurückspulen kann? und dazu noch mir anzeigt bei welcher zeit der abgespielte song ist?

  • hallo leute.ich bin ja jetzt nun schon vielmehr vertraut mit AutoIT und habe bisher auch schn an MusikPlayern gearbeitet.Aber jetzt will ich meine player in eine neue Dimension "sozusagen" heben.Wie mache ich dass ich Vorspulen kann und Zurückspulen kann im Script? und dazu noch dass unter dem Progress bar die zeit läuft (von 0:00 - 3:00 z.b.) und die genaue zeit angezeigt wird? (hab script aktualisiert es funktioniert jetzt aber vor - und zurück- Spulen funzt noch immer nicht.Ich bite darum dass mir jemand es machen könnte damit ich es bloss noch kopieren brauche danach glubsch ich mir des an und versuch mir dann diese technik zu merken)

    [autoit]


    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.8.1
    Author: Silver_Shadow97™

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

    Script Function: Infinity TrackZ Player™ [Alpha 0.5]
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <WindowsConstants.au3>
    #include <Sound.au3>
    #include <Date.au3>
    Global $h_Sound
    Global $max_sec
    Global $a_Sound
    $ver = "Infinity trackZ Player™ by Silver_Shadow97™ [Alpha 0.5]"
    #Region ### START Koda GUI section ### Form=
    $GUI = GUICreate("Infinity TrackZ Player by Silver_Shadow97™", 541, 314, 408, 166)
    $Exit_btn = GUICtrlCreateButton("Beenden", 224, 288, 91, 25)
    $Open_btn = GUICtrlCreateButton("Öffnen", 224, 168, 91, 81, $WS_GROUP)
    $Stop_btn = GUICtrlCreateButton("Stop", 136, 224, 75, 33, $WS_GROUP)
    $Replay_btn = GUICtrlCreateButton("Replay", 328, 224, 75, 33, $WS_GROUP)
    $Play_pause_btn = GUICtrlCreateButton("Play/Pause", 232, 136, 75, 25, $WS_GROUP)
    $Forward_btn = GUICtrlCreateButton("Vorspulen", 336, 176, 83, 33)
    $Reward_btn = GUICtrlCreateButton("Zurückspulen", 120, 176, 83, 33)
    $options_btn = GUICtrlCreateButton("optionen", 216, 256, 107, 25)
    $Progress1 = GUICtrlCreateProgress(120, 120, 294, 9)
    $Slider1 = GUICtrlCreateSlider(0, 0, 150, 29)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Exit_btn
    Exit
    Case $Open_btn
    $f_open = FileOpenDialog ("Suche nach Musiktiteln",@DesktopDir,"(*.*)")
    If not @error Then
    _SoundClose ($h_Sound)
    $h_Sound = _SoundOpen($f_open)
    $max_sec = _SoundLength($h_Sound,2) *1000
    _SoundPlay($h_Sound)
    WinsetTitle ($GUI,"",$f_open)
    AdlibRegister("ShowSeek",250)
    AdlibRegister("GetVol",150)
    EndIf
    Case $Stop_btn
    _SoundStop ($h_Sound)
    GUICtrlSetData ($Progress1,0)
    WinSetTitle($GUI,"",$ver)
    AdlibUnRegister("ShowSeek")
    AdlibUnRegister("GetVol")
    Case $Replay_btn
    If _SoundStatus ($h_Sound) = "Playing" or _SoundStatus ($h_Sound) = "paused" Then
    _SoundStop ($h_Sound)
    _SoundPlay ($h_Sound)
    EndIf
    Case $Play_pause_btn
    If _SoundStatus($h_Sound) = "playing" Then
    _SoundPause ($h_Sound)
    ElseIf _SoundStatus ($h_Sound) = "paused" Then
    _SoundResume($h_Sound)
    EndIf
    Case $Forward_btn

    Case $Reward_btn

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

    Case $options_btn
    ##include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Options_GUI = GUICreate("Optionen", 412, 154, 445, 294)
    GUISetBkColor(0x00FF00)
    $option_text = GUICtrlCreateLabel("2012® Silver_Shadow97™ Alle Rechte vorbehalten.", 0, 136, 248, 17)
    $Copy_rights_btn = GUICtrlCreateButton("Kopier-Rechte", 320, 0, 91, 25)
    $contact_btn = GUICtrlCreateButton("Kontakt", 320, 32, 91, 25)
    $Close_btn = GUICtrlCreateButton("Schliessen", 336, 128, 75, 25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Copy_rights_btn
    Msgbox (49,"Kopier - Rechte","Dieser player wurde erstellt von Silver_Shadow97™.Ich verbiete jegliche verbreitungs unter 'anderen namen' und jegliche vermarktung.Dieser Player ist eine Art Free Ware noch im Entwicklungs Status. ver: [Alpha 0.5]",10)
    Case $contact_btn
    MsgBox (0,"Kontakt","Ihr könnt mich über meiner E-mail : [email='www.Silver_Shadow97@web.de'][/email] erreichen oder über meinem Youtubechannel: http://www.youtube.com/user/Kiyubi97?feature=mhee . Ich stehe gern für fragen oder Bug berichte zur verfügung.2012® Silver_Shadow97™",15)
    EndSwitch
    WEnd

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

    EndSwitch
    WEnd

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

    Func ShowSeek()
    $pos_sec = _SoundPos($h_Sound,2) *1000
    $set = $pos_sec / $max_sec *100
    GUICtrlSetData ($Progress1,$set)
    EndFunc

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

    Func GetVol()
    SoundSetWaveVolume(GUICtrlRead($Slider1))
    EndFunc

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


    ich Hoffe ihr könnt mir helfen :D
    Mfg kiyubi97 [alias Silver_Shadow97™]

    2 Mal editiert, zuletzt von Kiyubi97™ (5. Mai 2012 um 17:49) aus folgendem Grund: auktualisieren

  • Vorspulen und zurückspulen/ auslesen (mit Progressbar) würde ich jz spontan mit _SoundSeek() & _SoundPos() probieren ;)

    lg chess


    um ehrlich zu sein erstehe ich nur bahnhof....könntest du es mal bitte für vollidioten erklären wie mich? :) also Sound seek und progress bar bei meinen buttons einfügen? ich verstehe das nich

  • Ich würde das jetzt so regeln, und das hier mit in die While-Schleife packen:

    [autoit]


    $ProgressBarHandle = $Progress1
    $SoundHandle = $h_Sound
    GUICtrlSetData($ProgressBarHandle,(_SoundPos($SoundHandle,2) / _SoundLength($SoundHandle,2)) * 100)

    [/autoit]


    Aber wie ich AutoIt kenne... gibt das Probleme mit der Geschwindigkeit, bzw. der Genauigkeit. ;)

    lg chess

  • Ich würde das jetzt so regeln, und das hier mit in die While-Schleife packen:

    [autoit]


    $ProgressBarHandle = $Progress1
    $SoundHandle = $h_Sound
    GUICtrlSetData($ProgressBarHandle,(_SoundPos($SoundHandle,2) / _SoundLength($SoundHandle,2)) * 100)

    [/autoit]


    Aber wie ich AutoIt kenne... gibt das Probleme mit der Geschwindigkeit, bzw. der Genauigkeit. ;)

    lg chess


    Geht nicht es passiert nur wenn ich es bei meinem vorspulknopf einbaue dass die progress bar mit einmal von vorn anfängt sich zu füllen bis dorthin wo das eigentlich musikstück läuft....

  • Hallo Kiyubi97,

    schau mal in meinen [Beispiel] NeMP3-P (MP3-Player) Version 0.8.4.7 rein. Vielleicht kannst du dir ja dort etwas abschauen,

    mfg autoBert

    Dein player bringt mir überhaupt nichts weil der Nämlich nicht so aufgebaut ist wie meiner dein player hat massig andere sache drinnen als mein player.Du hättest erstmal oben dir den Quelltext meines scriptes ansehen sollen ich kann mit deinem Player leider noch nichts anfangen. Mfg Kiyubi97

  • Zitat

    Dein player bringt mir überhaupt nichts weil der Nämlich nicht so aufgebaut ist wie meiner dein player hat massig andere sache drinnen als mein player.Du hättest erstmal oben dir den Quelltext meines scriptes ansehen sollen ich kann mit deinem Player leider noch nichts anfangen.


    Vielleicht hättest du dir erst mal den Quellcode seines ansehen sollen.... :whistling:
    Lass dich nicht von einer Menge Code beeindrucken, sondern konzentriere dich auf das wesentliche :rolleyes: . Was verwendest du um den Sound abzuspielen? Richtig, die Sound.au3. Was hat autoBert als include in seinem Scrip gelistet? Genau diese UDF.
    autoBert's Player ist selbstverständlich anders aufgebaut als deiner... Hast du eine perfekte Vorlage erwartet, die auf einem System aufbaut, dass du dir ausgedacht hast? ^^
    Betrachte den Quellcode mal systematisch. Du suchst nach einer Möglichkeit, die Musikdatei vor/zurück zu spulen. Die einzige Funktion in autoBerts Script die dazu passt ist _setPos.
    Wenn du dir nun den Inhalt dieser Funktion gesondert anschaust und dir Zeit nimmst verstehst du vielleicht wie das funktioniert. Falls nicht ist es besser zu fragen, als eine andere Erklärung zu verlangen.
    Du kannst die Funktion auch mit Beispielwerten füttern und per ConsoleWrite überprüfen was damit geschieht (dort sind teilweise noch solche Zeilen auskommentiert vorhanden).
    Ich denke du musst dir vorher erstmal klar machen, wie so ein Vor-/Zurückspulvorgang abläuft. Dabei wird nämlich auch nur die Abspielposition basierend auf der aktuellen Position neu gesetzt, nur eben eine halbe Sekunde weiter vorher oder später.

  • Hallo Kiyubi97,

    ich habe dir jetzt einmal die Anzeige der Posution mit eingebaut und geleichzeitig den Quellcode für die beiden GUI's angepasst:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

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

    AutoIt Version: 3.3.8.1
    Author: Silver_Shadow97™

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

    Script Function: Infinity TrackZ Player™ [Alpha 0.5]
    Template AutoIt script.

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

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here
    #include <SliderConstants.au3>
    #include <StaticConstants.au3>
    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <WindowsConstants.au3>
    #include <Sound.au3>
    #include <Date.au3>

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

    Global $h_Sound
    Global $max_sec
    Global $a_Sound
    $ver = "Infinity trackZ Player™ by Silver_Shadow97™ [Alpha 0.5]"

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

    #Region ### START Koda GUI section ### Form=
    $Options_GUI = GUICreate("Optionen", 412, 154, 445, 294)
    GUISetBkColor(0x00FF00)
    $option_text = GUICtrlCreateLabel("2012® Silver_Shadow97™ Alle Rechte vorbehalten.", 0, 136, 248, 17)
    $Copy_rights_btn = GUICtrlCreateButton("Kopier-Rechte", 320, 0, 91, 25)
    $contact_btn = GUICtrlCreateButton("Kontakt", 320, 32, 91, 25)
    $Close_btn = GUICtrlCreateButton("Schliessen", 336, 128, 75, 25)
    GUISetState(@SW_HIDE)
    #EndRegion ### END Koda GUI section ###

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

    #Region ### START Koda GUI section ### Form=
    $GUI = GUICreate("Infinity TrackZ Player by Silver_Shadow97™", 541, 314, 408, 166)
    $Exit_btn = GUICtrlCreateButton("Beenden", 224, 288, 91, 25)
    $Open_btn = GUICtrlCreateButton("Öffnen", 224, 168, 91, 81, $WS_GROUP)
    $Stop_btn = GUICtrlCreateButton("Stop", 136, 224, 75, 33, $WS_GROUP)
    $Replay_btn = GUICtrlCreateButton("Replay", 328, 224, 75, 33, $WS_GROUP)
    $Play_pause_btn = GUICtrlCreateButton("Play/Pause", 232, 136, 75, 25, $WS_GROUP)
    $Forward_btn = GUICtrlCreateButton("Vorspulen", 336, 176, 83, 33)
    $Reward_btn = GUICtrlCreateButton("Zurückspulen", 120, 176, 83, 33)
    $options_btn = GUICtrlCreateButton("optionen", 216, 256, 107, 25)
    $Progress1 = GUICtrlCreateProgress(120,120, 294, 9)
    $Slider1 = GUICtrlCreateSlider(0, 0, 150, 29)
    $idLblPosition = GUICtrlCreateLabel("",180,5,100,25)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg(1)
    Switch $nMsg[1] ;für welches Fenster ist die Message
    Case $GUI
    Switch $nMsg[0] ;für das Hauptfenster
    Case $GUI_EVENT_CLOSE, $Exit_btn
    Exit
    Case $Open_btn
    $f_open = FileOpenDialog("Suche nach Musiktiteln", @DesktopDir, "(*.*)")
    If Not @error Then
    _SoundClose($h_Sound)
    $h_Sound = _SoundOpen($f_open)
    $max_sec = _SoundLength($h_Sound, 2) * 1000
    _SoundPlay($h_Sound)
    WinSetTitle($GUI, "", $f_open)
    AdlibRegister("ShowSeek", 250)
    AdlibRegister("GetVol", 150)
    EndIf
    Case $Stop_btn
    _SoundStop($h_Sound)
    GUICtrlSetData($Progress1, 0)
    WinSetTitle($GUI, "", $ver)
    AdlibUnRegister("ShowSeek")
    AdlibUnRegister("GetVol")
    Case $Replay_btn
    If _SoundStatus($h_Sound) = "Playing" Or _SoundStatus($h_Sound) = "paused" Then
    _SoundStop($h_Sound)
    _SoundPlay($h_Sound)
    EndIf
    Case $Play_pause_btn
    If _SoundStatus($h_Sound) = "playing" Then
    _SoundPause($h_Sound)
    ElseIf _SoundStatus($h_Sound) = "paused" Then
    _SoundResume($h_Sound)
    EndIf
    Case $Forward_btn
    ConsoleWrite("Vorwärtsspulen" & @CRLF)
    Case $Reward_btn
    ConsoleWrite("Rückwärtsspulen" & @CRLF)

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

    Case $options_btn
    GUISetState(@SW_SHOW, $Options_GUI)
    GUISetState(@SW_DISABLE, $GUI)
    EndSwitch
    Case $Options_GUI
    Switch $nMsg[0] ;für das Optionsfnester
    Case $GUI_EVENT_CLOSE, $Close_btn
    GUISetState(@SW_ENABLE, $GUI)
    GUISetState(@SW_HIDE, $Options_GUI)
    Case $Copy_rights_btn
    MsgBox(49, "Kopier - Rechte", "Dieser player wurde erstellt von Silver_Shadow97™.Ich verbiete jegliche verbreitungs unter 'anderen namen' und jegliche vermarktung.Dieser Player ist eine Art Free Ware noch im Entwicklungs Status. ver: [Alpha 0.5]", 10, $Options_GUI)
    Case $contact_btn
    MsgBox(0, "Kontakt", "Ihr könnt mich über meiner E-mail : [email='www.Silver_Shadow97@web.de'][/email] erreichen oder über meinem Youtubechannel: http://www.youtube.com/user/Kiyubi97?feature=mhee . Ich stehe gern für fragen oder Bug berichte zur verfügung.2012® Silver_Shadow97™", 15,$Options_GUI)
    EndSwitch
    EndSwitch
    WEnd

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

    Func ShowSeek()
    $sLen = _SoundLength($h_Sound,1)
    $sLen = StringReplace($sLen,"00:0","")
    $sLen = StringReplace($sLen,"00","")
    $iLen =StringLen($sLen)
    $pos_sec = _SoundPos($h_Sound, 2) * 1000
    $set = $pos_sec / $max_sec * 100
    GUICtrlSetData($Progress1, $set)
    $sPos = _SoundPos($h_Sound,1)
    $sPos = StringRight($sPos,$iLen)
    GuiCtrlSetData($idLblPosition,"Pos: " & $sPos & "/" & $sLen)
    EndFunc ;==>ShowSeek

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

    Func GetVol()
    SoundSetWaveVolume(GUICtrlRead($Slider1))
    EndFunc ;==>GetVol

    [/autoit]

    Ein Vor- bzw Zurückspulen über Buttons geht imho nicht, da der Button nur ein Ereignis abfeuert wenn er losgelassen wird so dass man für jeden zu spulenden Zeitabschnitt einmal klicken müsstest, deshalb habe ich es bei mir über einen Slider gelöst, mit dem man genau die Stelle positionieren kann,

    mfg autoBert

  • Danke :) bist echt ein Lebensretter xD naja auf jeden fall werde ich erstmal versuchen zu verstehen wie das gemacht wird USW. Danke Ganz dolle :)