Sound abspielen

  • Hallo,
    ich versuche das mein Script wenn es durchgelaufen ist eine Sound abspielt nur funzt das irgend wie nicht auch mit der Hilfe von AutoIT habe ich ein Problem das mir nur das Inhaltsverzeichnis angezeigt wird und ich nicht auf die Querverweise zugreifen kann

    vielleicht kann mir jemand einen Hinweis geben wo mein Fehler ist

    [autoit]


    HotKeySet("{esc}", "ende")
    HotKeySet("{p}", "PAUSE")

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

    Global $pause = False

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

    #include <Sound.au3>
    _sound()

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

    mein Text

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

    Func _sound()
    $snd = _SoundOpen(@ScriptDir &"D:\AutoIT\Trumpet1.wav")
    _SoundPlay($snd)
    return 1
    EndFunc

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

    Func PAUSE()

    $pause = Not $pause
    While $pause
    Sleep(50)
    WEnd

    EndFunc

    Func ende() ; logischerweise: Ende xD
    Exit
    EndFunc ;==>ende

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

    MfG

  • Dein Fehler (Beim groben Durchgucken) liegt hier:

    [autoit]


    ...
    $snd = _SoundOpen(@ScriptDir &"D:\AutoIT\Trumpet1.wav")
    ...

    [/autoit]


    Wenn dein Script auf dem Desktop liegt, sieht der Pfad dann so aus:
    C:\Users\Benutzer\DesktopD:\AutoIT\Trumpet1.wav
    Mach das @ScriptDir mal weg;)

    lg chess

    edit:
    Ouuh.. da ist ja noch mehr drin^^
    Gleich nochmal drübergucken

  • Hi,
    du hast hier ein (zumindestens auf den ersten Blick)

    [autoit]

    $snd = _SoundOpen(@ScriptDir &"D:\AutoIT\Trumpet1.wav")

    [/autoit]


    das @ScriptDir zuviel gesetzt...
    So würdest du den Pfad "D:\AutoIT\Trumpet1.wav" IM Scriptverzeichnis selber aufrufen... ;)

    MFG Mr.Geheim

    €: Da war chesstiger wohl schneller... Ich sollte wohl nicht zwischendrin etwas essen gehen... :D

  • Tja, ich bin grade vom Essen gekommen 8)

    @TE (DumdiDum)

    Kommentierter Code von DumdiDum
    [autoit]


    HotKeySet("{esc}", "ende")
    HotKeySet("{p}", "PAUSE") ;"{p}" ist eigentlich unnötig. "p" reicht vollkommen aus.

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

    Global $pause = False

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

    #include <Sound.au3> ;Includes werden der Ordnung halber immer an den Anfang eines Scripts gesetzt: Ist übersichtlicher.
    _sound()

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

    mein Text ;Da der hier stehende Code unbekannt ist... ;)

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

    Func _sound()
    $snd = _SoundOpen(@ScriptDir &"D:\AutoIT\Trumpet1.wav") ;Siehe vorher geschriebenes
    _SoundPlay($snd)
    return 1 ;Unnötig. Erstens wird der Return-Wer nicht abgefangen (Zeile 9) und Zweitens gibt _sound() IMMER "1" zurück, unabhängig vom Erfolg.
    EndFunc

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

    Func PAUSE()

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

    $pause = Not $pause
    While $pause
    Sleep(50)
    WEnd

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

    EndFunc

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

    Func ende() ; logischerweise: Ende xD
    Exit
    EndFunc ;==>ende

    [/autoit]

    Weiterhin wäre es - auch der Ordnung halber - besser, den Code selbst einzurücken oder Tidy drüberlaufen zu lassen.
    Ich hoffe das wirkt jetzt nicht kleinkarriert^^

    lg chess