Sound in Dauerschleife bis...

  • Ich hoffe der Threadtitel verrät schon einiges: Wie mache ich es, dass Autoit einen Sound/ein Lied solange in Dauerschleife abspielt bis man dem Programm etwas anderes sagt?
    Soundplay hat sowas ja zumindest nicht integriert...
    Naja was wüsstet ihr sonst noch? :)
    MfG Yussuf

    Edit: Im Chat wurde mir SoundOpen empfohlen, nach dem was ich bisher versucht hab, gehts aber nicht. :(

    3 Mal editiert, zuletzt von Yussuf (14. Juli 2011 um 16:54)

  • Okay, ich sollte den Script posten:

    [autoit]

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

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

    Dim $einleitung = ""
    SplashImageOn("Sucher", "test.jpg")
    sleep(20)
    SplashOff()
    ; dadrunter wahrscheinlich
    $soundmenu=_SoundOpen(@ScriptDir&"\lied.mp3")
    SoundPlay($soundmenu)
    ; bis hier
    $Form1 = GUICreate("Sucher", 250, 150)
    $Button1 = GUICtrlCreateButton("Neues Spiel", 15, 25, 220, 40, $BS_CENTER)
    $Button1 = GUICtrlCreateButton("Optionen", 15, 65, 220, 40, $BS_CENTER)
    $Label1 = GUICtrlCreateLabel("Willkommen bei Sucher! Wähle deine Option:", 0, 5, 250, 20, $SS_CENTER)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUIDelete()

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

    EndSwitch
    WEnd

    [/autoit]
  • :rofl:
    Wir sagten NICHT:

    [autoit]

    SoundPlay()

    [/autoit]


    Sondern:

    [autoit]

    _SoundPlay()

    [/autoit]


    Demzufolge geht es (eigentlich) so:

    [autoit]

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

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

    Dim $einleitung = ""
    SplashImageOn("Sucher", "test.jpg")
    sleep(20)
    SplashOff()
    ; dadrunter wahrscheinlich
    $soundmenu=_SoundOpen(@ScriptDir&"\lied.mp3")
    _SoundPlay($soundmenu)
    ; bis hier
    $Form1 = GUICreate("Sucher", 250, 150)
    $Button1 = GUICtrlCreateButton("Neues Spiel", 15, 25, 220, 40, $BS_CENTER)
    $Button1 = GUICtrlCreateButton("Optionen", 15, 65, 220, 40, $BS_CENTER)
    $Label1 = GUICtrlCreateLabel("Willkommen bei Sucher! Wähle deine Option:", 0, 5, 250, 20, $SS_CENTER)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUIDelete()

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

    EndSwitch
    WEnd

    [/autoit]

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Ein wenig dumm bin ich ja schon. :rofl:
    Danke erstmal. Jetzt spielt er das ganze ab. Aber eine Dauerschleife ist das noch nicht. Tut mir Leid wenn die Fragen ein wenig sehr Basic sind, aber ich kanns halt (noch) nicht besser. ;)

  • So - Hier hastes; 100 % funktionsfähigkeit, habs eben getestet ;)
    MfG

    [autoit]


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

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

    Dim $einleitung = ""
    SplashImageOn("Sucher", "test.jpg")
    Sleep(20)
    SplashOff()
    ; dadrunter wahrscheinlich
    Global $soundmenu = _SoundOpen(@ScriptDir & "\lied.mp3")
    _SoundPlay($soundmenu)
    $Form1 = GUICreate("Sucher", 250, 150)
    $Button1 = GUICtrlCreateButton("Neues Spiel", 15, 25, 220, 40, $BS_CENTER)
    $Button1 = GUICtrlCreateButton("Optionen", 15, 65, 220, 40, $BS_CENTER)
    $Label1 = GUICtrlCreateLabel("Willkommen bei Sucher! Wähle deine Option:", 0, 5, 250, 20, $SS_CENTER)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUIDelete()
    EndSwitch
    If _SoundPos($soundmenu, 2) = 0 Or _SoundPos($soundmenu, 2) = _SoundLength($soundmenu, 2) Then _SoundPlay($soundmenu)
    WEnd

    [/autoit]

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • mmh, habe aber trotzdem nicht ganz verstanden, was die Hilfe mir sagen will. Length ist die Länge des Sounds, aber das ganze "füllt" den restlichen Soundbereich wohl einfach nur auf und wiederholt sich nicht. Soundpos versteh ich nicht. Sorry wenn ich das nicht so schnell verstehe, aber ich komme mit diesen ganzen einzelnen Befehlen nicht hin.

    Kann mir nicht irgendwer ein Beispiel geben oder so?
    Das wär echt nett. :thumbup:

    Edit: Oh ich seh grad. Dankeschön. :D
    Super Support hier, danke. :)

  • Also:

    _SoundLength gibt dir die Länge des Liedes zurück ...
    _SoundPos gibt dir die Position zurück, an der das Lied aktuell gespielt wird ...

    Und ich frage in der If-Bedingung folgendes ab:

    WENN die Position = 0 ODER die Position = Länge DANN Spiele wieder von vorne

    MfG

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Jepp, hab ich mir jetzt auch so gedacht. :)
    Und wenn jetzt der Neues Spiel-Button gedrückt wird, hört die Musik auf, hab da ein Soundclose eingebaut, läuft alles super. :)
    Jetzt werd ich mich endlich meinem Textadventure widmen. ;)