Wie Kreige ich raus welcher sound mit soundplay gestartet wurde?

  • [autoit]

    $aSnd_id1 = _SoundOpen(@ScriptDir & "\1.mp3")
    $aSnd_id2 = _SoundOpen(@ScriptDir & "\2.mp3")
    $aSnd_id3 = _SoundOpen(@ScriptDir & "\3.mp3")
    $aSnd_id4 = _SoundOpen(@ScriptDir & "\4.mp3")
    $aSnd_id5 = _SoundOpen(@ScriptDir & "\5.mp3")
    $aSnd_id6 = _SoundOpen(@ScriptDir & "\6.mp3")
    $aSnd_id7 = _SoundOpen(@ScriptDir & "\7.mp3")
    $aSnd_id8 = _SoundOpen(@ScriptDir & "\8.mp3")
    $aSnd_id9 = _SoundOpen(@ScriptDir & "\9.mp3")

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

    While 1
    WEnd
    Func Song1()
    _SoundPlay($aSnd_id1)
    EndFunc
    Func Song2()
    _SoundPlay($aSnd_id2)
    EndFunc
    Func Song3()
    _SoundPlay($aSnd_id3)
    EndFunc
    Func Song4()
    _SoundPlay($aSnd_id4)
    EndFunc
    Func Song5()
    _SoundPlay($aSnd_id5)
    EndFunc
    Func Song6()
    _SoundPlay($aSnd_id6)
    EndFunc
    Func Song7()
    _SoundPlay($aSnd_id7)
    EndFunc
    Func Song8()
    _SoundPlay($aSnd_id8)
    EndFunc
    Func Song9()
    _SoundPlay($aSnd_id9)
    EndFunc

    [/autoit]

    So wenn ich jetzt Func song9() aktiviere!

    und dann Song8() per Hotkey oder so woher weis dann _soundstop() welche sound er Stoppen muss?

    Muss Ich Irgendwie

    [autoit]


    Func song9()
    $aktiviert= 9

    [/autoit]

    oder so?

    und noch ne Frage warum macht das bei mir Stenid so en Großen Abstand zwischen den Zeilen?

    MFG CF*Gaming

  • Ich würde das in etwa so machen:

    Spoiler anzeigen
    [autoit]

    #include <Sound.au3>

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

    HotKeySet("!1", "Song")
    HotKeySet("!2", "Song")
    HotKeySet("!3", "Song")
    HotKeySet("!4", "Song")
    HotKeySet("!5", "Song")

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

    HotKeySet("{ESC}", "Stop")

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

    Global $aSnd_id[6], $iSnd_id

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

    $aSnd_id[1] = _SoundOpen(@ScriptDir & "\1.mp3")
    $aSnd_id[2] = _SoundOpen(@ScriptDir & "\2.mp3")
    $aSnd_id[3] = _SoundOpen(@ScriptDir & "\3.mp3")
    $aSnd_id[4] = _SoundOpen(@ScriptDir & "\4.mp3")
    $aSnd_id[5] = _SoundOpen(@ScriptDir & "\5.mp3")

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

    While 1
    Sleep(10)
    WEnd

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

    Func Song()
    Switch @HotKeyPressed
    Case "!1"
    $iSnd_id = 1
    Case "!2"
    $iSnd_id = 2
    Case "!3"
    $iSnd_id = 3
    Case "!4"
    $iSnd_id = 4
    Case "!5"
    $iSnd_id = 5
    EndSwitch
    _SoundPlay($aSnd_id[$iSnd_id])
    EndFunc

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

    Func Stop()
    _SoundStop($aSnd_id[$iSnd_id])
    EndFunc

    [/autoit]

    Das Problem mit dem Zeilenabstand hab ich auch manchmal auf meinem Rechner in der Firma - hab allerdings keine Ahnung wieso...

    mfgE

  • Achja genau mit nem Array..


    Die hab ich gar nich in betracht geyogen .D

    wie kann ich jetyt noch verhinder das man sich alle lieder abspielen wenn man jetyt zb. 1234 und 5 drückt?

    Einmal editiert, zuletzt von [CF[*Gaming*] (18. Juli 2010 um 12:46)

  • So z.B.:

    Spoiler anzeigen
    [autoit]

    Func Song()
    if $iSnd_id > 0 then Stop()
    Switch @HotKeyPressed
    Case "!1"
    $iSnd_id = 1
    Case "!2"
    $iSnd_id = 2
    Case "!3"
    $iSnd_id = 3
    Case "!4"
    $iSnd_id = 4
    Case "!5"
    $iSnd_id = 5
    EndSwitch
    _SoundPlay($aSnd_id[$iSnd_id])
    EndFunc

    [/autoit]

    im übrigen ist das öffnen aller Lieder am Skriptanfang Resourcenverschwendung, baue das Skript lieber so um dass du die Files in einem Array führst und dann (das vorherige Lied stopst) das jeweilige Lied startest

    mfg (Auto)Bert