Musikplayer

  • Hallo
    ich versuche gerade ein Programm zu der Wiedergabe von MP3-Datein zu schreiben. Bislang bin so weit gekommen, dass es die gewünschte Datei in meiner Listbox anzeigt und ich diese auch abspielen kann. Einen Lautstärkeregler habe ich auch hinzugefügt, habe bei diesem nur das Problem, dass beim Öffnen des Programms die Lautstärke immer auf 0 gesetzt ist und weiß nicht wie ich das ändern kann. Ansonsten funktioniert dieser einwandfrei.
    Nach längerem grübeln und mehreren Veruschen, habe ich es mitlerweise auch aufgegeben eine Funktion zu schrieben, mit welcher ich das Lied umschalten kann.
    Ich wollte auch noch ein Funktion für die Speicherung der aktuellen "Playlist" in der Listbox machen, habe jeoch auch keine Ahnung wie ich as machen soll. So geht es mir auch bei der Anzeige des aktuellen Standpunktes im Lied.
    Wenn mir jemand ein paar Tipps geben könnte, wie ich meine Ideen umsetzen kann, wäre dies großartig.

    mfg

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #Include <GuiListView.au3>
    #include <SliderConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $Form1 = GUICreate("Form1", 306, 133, 260, 280, $WS_POPUP)
    GUISetBkColor(0xE0FFFF)
    $Play = GUICtrlCreateLabel("4", 200, 36, 53, 45)
    GUICtrlSetFont(-1, 36, 800, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0F00)
    GUICtrlSetOnEvent(-1, "PlayClick")
    GUICtrlSetTip(-1, "Play")
    $For = GUICtrlCreateLabel("8", 243, 44, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetOnEvent(-1, "ForClick")
    GUICtrlSetTip(-1, "Nächter Titel")
    $back = GUICtrlCreateLabel("7", 180, 44, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetOnEvent(-1, "backClick")
    GUICtrlSetTip(-1, "Vorheriger Titel")
    $open = GUICtrlCreateLabel("1", 215, 86, 27, 21)
    GUICtrlSetFont(-1, 12, 800, 0, "Wingdings")
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetOnEvent(-1, "openClick")
    GUICtrlSetTip(-1, "Öffnen")
    $slider = GUICtrlCreateSlider(16, 112, 137, 19, $TBS_BOTTOM)
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetLimit($slider , 100, 0)
    $List1 = GUICtrlCreateListView("Titel", 16, 16, 137, 97)
    GUISetState(@SW_SHOW)
    WinSetTrans("Form1", "", 480)

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

    While 1
    SoundSetWaveVolume(GUICtrlRead($slider))
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func playclick()
    $Song = _GUICtrlListView_GetItemTextString($List1)
    SoundPlay($Song)
    EndFunc

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

    Func ForClick()
    EndFunc

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

    Func backClick()
    EndFunc

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

    Func openClick()
    $Song = FileOpenDialog("Öffnen", @DesktopDir, "(*.mp3)")
    GUICtrlCreateListViewItem($Song, $List1)
    EndFunc

    [/autoit]

    -> Die Farben sind nicht gerade schön, hab da iwas eingestellt :D

  • mit
    guictrlsetdata müste das funktionieren

    also so

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #Include <GuiListView.au3>
    #include <SliderConstants.au3>
    Opt("GUIOnEventMode", 1)
    $Form1 = GUICreate("Form1", 306, 133, 260, 280, $WS_POPUP)
    GUISetBkColor(0xE0FFFF)
    $Play = GUICtrlCreateLabel("4", 200, 36, 53, 45)
    GUICtrlSetFont(-1, 36, 800, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0F00)
    GUICtrlSetOnEvent(-1, "PlayClick")
    GUICtrlSetTip(-1, "Play")
    $For = GUICtrlCreateLabel("8", 243, 44, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetOnEvent(-1, "ForClick")
    GUICtrlSetTip(-1, "Nächter Titel")
    $back = GUICtrlCreateLabel("7", 180, 44, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetOnEvent(-1, "backClick")
    GUICtrlSetTip(-1, "Vorheriger Titel")
    $open = GUICtrlCreateLabel("1", 215, 86, 27, 21)
    GUICtrlSetFont(-1, 12, 800, 0, "Wingdings")
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetOnEvent(-1, "openClick")
    GUICtrlSetTip(-1, "Öffnen")
    $slider = GUICtrlCreateSlider(16, 112, 137, 19, $TBS_BOTTOM)
    Guictrlsetdata($slider, 50)
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetLimit($slider , 100, 0)
    $List1 = GUICtrlCreateListView("Titel", 16, 16, 137, 97)
    GUISetState(@SW_SHOW)
    WinSetTrans("Form1", "", 480)

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

    While 1
    SoundSetWaveVolume(GUICtrlRead($slider))
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd
    Func playclick()
    $Song = _GUICtrlListView_GetItemTextString($List1)
    SoundPlay($Song)
    EndFunc
    Func ForClick()
    EndFunc
    Func backClick()
    EndFunc
    Func openClick()
    $Song = FileOpenDialog("Öffnen", @DesktopDir, "(*.mp3)")
    GUICtrlCreateListViewItem($Song, $List1)
    EndFunc

    [/autoit]
  • Vielen Dank für die schnelle Antwort
    Funktioniert 1A

    Bleiben nur noch die Probleme mit dem Umschalten des Liedes, Speichern der Playlist und einer Anzeige zum "Spulen" und der aktuellen Position im Lied.
    Was mir auch noch aufgefalles ist, ist das die Lieder die ich hinzufüge immer mit dem kompletten Link angezeigt werden. Ich wollte nun es so ändern, das es nur noch den Name der Datei anzeigt, habe dies jedoch auch nicht geschafft :S

    Hoffe mir kann nochmal jemand bei den oben genannten Problemem helfen

  • Vielen Dank ist sehr interessant zu sehen

    leider versteh ich bei dir nur wenig, da auch keine Kommentare vorhanden sind und meine Kenntnisse nicht enorm groß sind :x
    Ich werde versuchen mich mal ein bisschen reinzulesen und würde mich über weitere Hilfestellungen freuen :)

  • Das mit dem Dateiname klappt nun. Habe nur jetzt das Problem das ich nichts mehr abspielen kann :pinch:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #Include <GuiListView.au3>
    #include <SliderConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $Form1 = GUICreate("Form1", 306, 133, 260, 280, $WS_POPUP)
    GUISetBkColor(0xE0FFFF)
    $Play = GUICtrlCreateLabel("4", 200, 36, 53, 45)
    GUICtrlSetFont(-1, 36, 800, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0F00)
    GUICtrlSetOnEvent(-1, "PlayClick")
    GUICtrlSetTip(-1, "Play")
    $For = GUICtrlCreateLabel("8", 243, 44, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetOnEvent(-1, "ForClick")
    GUICtrlSetTip(-1, "Nächter Titel")
    $back = GUICtrlCreateLabel("7", 180, 44, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetOnEvent(-1, "backClick")
    GUICtrlSetTip(-1, "Vorheriger Titel")
    $open = GUICtrlCreateLabel("1", 215, 86, 27, 21)
    GUICtrlSetFont(-1, 12, 800, 0, "Wingdings")
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetOnEvent(-1, "openClick")
    GUICtrlSetTip(-1, "Öffnen")
    $slider = GUICtrlCreateSlider(16, 112, 137, 19, $TBS_BOTTOM)
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetData($slider, 100)
    GUICtrlSetLimit($slider , 100, 0)
    $List1 = GUICtrlCreateListView("Titel|Pfad", 16, 16, 137, 97)
    GUISetState(@SW_SHOW)
    WinSetTrans("Form1", "", 480)

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

    While 1
    SoundSetWaveVolume(GUICtrlRead($slider))
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func openClick()
    $laden = FileOpenDialog("Öffnen", @DesktopDir, "(*.mp3)")
    $Song1=stringsplit($laden,"\")
    $Song=StringSplit($Song1[$Song1[0]],".")
    guictrlcreatelistviewitem($Song[1]&"|"&$laden,$List1)
    EndFunc

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

    Func playclick()
    $laden = _GUICtrlListView_GetItemTextString($List1)
    SoundPlay($laden)
    EndFunc

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

    Func ForClick()
    EndFunc

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

    Func backClick()
    EndFunc

    [/autoit]
  • [autoit]

    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #Include <GuiListView.au3>
    #include <SliderConstants.au3>

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

    Opt("GUIOnEventMode", 1)

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

    $Form1 = GUICreate("Form1", 306, 133, 260, 280, $WS_POPUP)
    GUISetBkColor(0xE0FFFF)
    $Play = GUICtrlCreateLabel("4", 200, 36, 53, 45)
    GUICtrlSetFont(-1, 36, 800, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0F00)
    GUICtrlSetOnEvent(-1, "PlayClick")
    GUICtrlSetTip(-1, "Play")
    $For = GUICtrlCreateLabel("8", 243, 44, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetOnEvent(-1, "ForClick")
    GUICtrlSetTip(-1, "Nächter Titel")
    $back = GUICtrlCreateLabel("7", 180, 44, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetOnEvent(-1, "backClick")
    GUICtrlSetTip(-1, "Vorheriger Titel")
    $open = GUICtrlCreateLabel("1", 215, 86, 27, 21)
    GUICtrlSetFont(-1, 12, 800, 0, "Wingdings")
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetOnEvent(-1, "openClick")
    GUICtrlSetTip(-1, "Öffnen")
    $slider = GUICtrlCreateSlider(16, 112, 137, 19, $TBS_BOTTOM)
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetData($slider, 100)
    GUICtrlSetLimit($slider , 100, 0)
    $List1 = GUICtrlCreateListView("Titel|Pfad", 16, 16, 137, 97)
    GUISetState(@SW_SHOW)
    WinSetTrans("Form1", "", 480)

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

    While 1
    SoundSetWaveVolume(GUICtrlRead($slider))
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func openClick()
    $laden = FileOpenDialog("Öffnen", @DesktopDir, "(*.mp3)")
    IniWrite(@TempDir & "\soundplayconfig.ini", "Play", "1", $laden)
    $Song1=stringsplit($laden,"\")
    $Song=StringSplit($Song1[$Song1[0]],".")
    guictrlcreatelistviewitem($Song[1]&"|"&$laden,$List1)
    EndFunc

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

    Func playclick()
    $song1 = IniRead(@TempDir & "\soundplayconfig.ini", "Play", "1", @error)
    SoundPlay($song1)
    EndFunc

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

    Func ForClick()
    EndFunc

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

    Func backClick()
    EndFunc

    [/autoit]


    hier ein beispiel wie man es mit einer ini machen könnte

  • Danke für deine Hilfe
    Leider funktioniert dies auch nicht korrekt.
    Wenn ich 2 Lieder in die Playlist einordne, eines Starte und dann auf das 2te umschalte, kann ich egal welches Lied ich auswähle nur noch dieses anhören.

  • hab dein Script etwas Modifiziert

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #Include <GuiListView.au3>
    #include <SliderConstants.au3>
    #include <array.au3>
    Global $Music_List[1],$music_pointer=0

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

    $Form1 = GUICreate("Form1", 306, 133, 260, 280, $WS_POPUP)
    GUISetBkColor(0xE0FFFF)
    $Play = GUICtrlCreateLabel("4", 200, 36, 53, 45)
    GUICtrlSetFont(-1, 36, 800, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0F00)

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

    GUICtrlSetTip(-1, "Play")
    $For = GUICtrlCreateLabel("8", 243, 44, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0FF0)

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

    GUICtrlSetTip(-1, "Nächter Titel")
    $back = GUICtrlCreateLabel("7", 180, 44, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFF0FF0)

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

    GUICtrlSetTip(-1, "Vorheriger Titel")
    $open = GUICtrlCreateLabel("1", 215, 86, 27, 21)
    GUICtrlSetFont(-1, 12, 800, 0, "Wingdings")
    GUICtrlSetColor(-1, 0xFF0FF0)

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

    GUICtrlSetTip(-1, "Öffnen")
    $slider = GUICtrlCreateSlider(16, 112, 137, 19, $TBS_BOTTOM)
    GUICtrlSetColor(-1, 0xFF0FF0)
    GUICtrlSetData($slider, 100)
    GUICtrlSetLimit($slider , 100, 0)
    $List1 = GUICtrlCreateListView("Titel|Pfad", 16, 16, 137, 97)
    GUISetState(@SW_SHOW)
    WinSetTrans("Form1", "", 480)

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

    While 1
    SoundSetWaveVolume(GUICtrlRead($slider))
    $Msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $open
    openClick()
    Case $msg>$List1
    $split=StringSplit(GUICtrlRead($msg),"|")
    play_this($split[2])
    Case $msg = $For
    If $music_pointer=0 Then ContinueLoop
    $music_pointer=$music_pointer+1
    If $music_pointer > $Music_List[0] Then $music_pointer=1
    play_this($Music_List[$music_pointer])

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

    Case $msg = $back
    If $music_pointer=0 Then ContinueLoop
    $music_pointer=$music_pointer-1
    If $music_pointer = 0 Then $music_pointer=$Music_List[0]
    play_this($Music_List[$music_pointer])
    EndSelect

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

    WEnd

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

    Func openClick()
    $x=0
    $laden = FileOpenDialog("Öffnen", @DesktopDir, "(*.mp3)",1+4)
    If @error Then Return 0
    $split=StringSplit($laden,"|")
    If $split[0]=1 Then
    $Music_List[0]=UBound($Music_List)
    _ArrayAdd($Music_List,$laden)
    $split=StringSplit($laden,"\")
    $music_pointer=$Music_List[0]
    GUICtrlCreateListViewItem($split[$split[0]]&"|"&$laden,$List1)
    Else
    For $i=2 To $split[0]
    $Music_List[0]=UBound($Music_List)
    _ArrayAdd($Music_List,$split[1]&"\"&$split[$i])
    GUICtrlCreateListViewItem($split[$i]&"|"&$split[1]&"\"&$split[$i],$List1)
    If $x=0 Then $music_pointer=$Music_List[0]
    $x=1
    Next
    EndIf
    play_this($Music_List[$music_pointer])
    EndFunc

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

    Func play_this($input)
    SoundPlay($input)
    EndFunc

    [/autoit]