Hilfe für Musik-Player // ListView

  • Hallo an Alle erst mal,
    Ich bin dabei einen Musikplayer zu programmieren dern ich später noch in ein anderes Programm einbaue.
    Doch mein Problem ist das "ListView" ich möchte mit "FileopenDialog" Musik stücke öffnen und diese im ListView anzeigen lassen.
    Könnt ihr mir helfen??
    LG
    Bepelz
    hier mein Script

    Spoiler anzeigen
    [autoit]

    #include
    #include
    #include
    #include
    #include

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

    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    $Player = GUICreate("Musik-Player", 166, 245, 334, 180,$WS_POPUP)
    GUISetBkColor(0x808080)
    $Play = GUICtrlCreateLabel("4", 53, 198, 53, 45)
    GUICtrlSetFont(-1, 36, 800, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "PlayClick")
    GUICtrlSetTip(-1, "Play")
    $For = GUICtrlCreateLabel("8", 98, 206, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "ForClick")
    GUICtrlSetTip(-1, "For")
    $back = GUICtrlCreateLabel("7", 32, 206, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "backClick")
    GUICtrlSetTip(-1, "Zurück")
    $timeM = GUICtrlCreateLabel("88:88:88/88:88:88", 33, 184, 93, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $open = GUICtrlCreateLabel("1", 8, 152, 27, 21)
    GUICtrlSetFont(-1, 12, 800, 0, "Wingdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "openClick")
    GUICtrlSetTip(-1, "Öffnen")
    $Label1 = GUICtrlCreateLabel("Titel------------------------", 34, 154, 123, 19)
    GUICtrlSetFont(-1, 9, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $xit = GUICtrlCreateLabel("X", 144, 212, 18, 28)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "xitClick")
    GUICtrlSetTip(-1, "Exit")
    $mini = GUICtrlCreateLabel("2", 8, 216, 20, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "miniClick")
    GUICtrlSetTip(-1, "Minimize")
    $ListView1 = GUICtrlCreateListView("Titel|Länge", 2, 1, 161, 145)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 57)
    GUISetState(@SW_SHOW)
    WinSetTrans("Musik-Player","",220)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    Sleep(100)
    WEnd

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

    Func backClick()

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

    EndFunc
    Func ForClick()

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

    EndFunc
    Func miniClick()
    Guisetstate(@SW_MINIMIZE)
    EndFunc
    Func openClick()
    Global $Songchosen = FileOpenDialog("Musik wählen",@mydocumentsdir,"Audio (*.mp3;*.wma;*.wav;*.mp4)",1 + 2 + 4)
    EndFunc
    Func PlayClick()

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

    EndFunc
    Func xitClick()
    exit
    EndFunc

    [/autoit]
  • Hallo Bepelz,

    schau dir in der Hilfe GUICtrlCreateListViewItem, StringSplit und _PathSplit an, diese habe ich für die folgenden Änderungen verwendet:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <ListviewConstants.au3>
    #include <File.au3>

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

    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    $Player = GUICreate("Musik-Player", 166, 245, 334, 180, $WS_POPUP)
    GUISetBkColor(0x808080)
    $Play = GUICtrlCreateLabel("4", 53, 198, 53, 45)
    GUICtrlSetFont(-1, 36, 800, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "PlayClick")
    GUICtrlSetTip(-1, "Play")
    $For = GUICtrlCreateLabel("8", 98, 206, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "ForClick")
    GUICtrlSetTip(-1, "For")
    $back = GUICtrlCreateLabel("7", 32, 206, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "backClick")
    GUICtrlSetTip(-1, "Zurück")
    $timeM = GUICtrlCreateLabel("88:88:88/88:88:88", 33, 184, 93, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $open = GUICtrlCreateLabel("1", 8, 152, 27, 21)
    GUICtrlSetFont(-1, 12, 800, 0, "Wingdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "openClick")
    GUICtrlSetTip(-1, "Öffnen")
    $Label1 = GUICtrlCreateLabel("Titel------------------------", 34, 154, 123, 19)
    GUICtrlSetFont(-1, 9, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $xit = GUICtrlCreateLabel("X", 144, 212, 18, 28)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "xitClick")
    GUICtrlSetTip(-1, "Exit")
    $mini = GUICtrlCreateLabel("2", 8, 216, 20, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "miniClick")
    GUICtrlSetTip(-1, "Minimize")
    $ListView1 = GUICtrlCreateListView("Titel|Länge|Pfad", 2, 1, 161, 145)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 57)
    ;GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 0) ;Pfad verstecken

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

    GUISetState(@SW_SHOW)
    WinSetTrans("Musik-Player", "", 220)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    Sleep(100)
    WEnd

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

    Func backClick()

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

    EndFunc ;==>backClick
    Func ForClick()

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

    EndFunc ;==>ForClick
    Func miniClick()
    GUISetState(@SW_MINIMIZE)
    EndFunc ;==>miniClick
    Func eintragen($FName)
    Local $szDrive, $szDir, $szFName, $szExt
    ConsoleWrite($FName & @CRLF)
    _PathSplit($FName, $szDrive, $szDir, $szFName, $szExt)
    GUICtrlCreateListViewItem($szFName & "|" & "|" & $FName, $ListView1)
    EndFunc ;==>eintragen

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

    Func openClick()
    Global $Songchosen = FileOpenDialog("Musik wählen", @MyDocumentsDir, "Audio (*.mp3;*.wma;*.wav;*.mp4)", 1 + 2 + 4)
    If Not @error Then
    $arChosenSongs = StringSplit($Songchosen, "|")
    If IsArray($arChosenSongs) Then ;Mehrfachauswahl
    For $i = 2 To UBound($arChosenSongs) - 1 ;ab dem 2. Arrayeintrag fangen die Titel an
    eintragen($arChosenSongs[1] & "\" & $arChosenSongs[$i]) ;Pad (ohne Titel) und Titel (mit Ext) zusammen übergeben
    Next
    Else ;einzelnes Lied
    eintragen($Songchosen)
    EndIf
    EndIf
    EndFunc ;==>openClick
    Func PlayClick()

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

    EndFunc ;==>PlayClick
    Func xitClick()
    Exit
    EndFunc ;==>xitClick

    [/autoit]

    _PathSplit kannst du auch gegen ein anderes Verfahren tauschen mit dem du den Titel aus dem kompletten Pfad etrahierst.
    herzlich willkommen im Forum und viel Spass mit AutoIt,

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (24. Januar 2010 um 23:01)

  • Hallo Bepelz,

    ich habe auf Grund deiner PN, auch mal den Button Play mit einem Beispielcode gefüllt, damit du siehst wie du an die einzelnen Titel in der Listview zugreifen kannst. Ist im Moment eine MsgBox die den Titel und den Pfad zur ausgewählten Datei ausgibt und ausserdem den externen Windows-Mediaplayer aufruft,

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <ListviewConstants.au3>
    #Include <GuiListView.au3>
    #include <File.au3>

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

    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    $Player = GUICreate("Musik-Player", 166, 245, 334, 180, $WS_POPUP)
    GUISetBkColor(0x808080)
    $Play = GUICtrlCreateLabel("4", 53, 198, 53, 45)
    GUICtrlSetFont(-1, 36, 800, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "PlayClick")
    GUICtrlSetTip(-1, "Play")
    $For = GUICtrlCreateLabel("8", 98, 206, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "ForClick")
    GUICtrlSetTip(-1, "For")
    $back = GUICtrlCreateLabel("7", 32, 206, 31, 34)
    GUICtrlSetFont(-1, 20, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "backClick")
    GUICtrlSetTip(-1, "Zurück")
    $timeM = GUICtrlCreateLabel("88:88:88/88:88:88", 33, 184, 93, 17)
    GUICtrlSetColor(-1, 0xFFFFFF)
    $open = GUICtrlCreateLabel("1", 8, 152, 27, 21)
    GUICtrlSetFont(-1, 12, 800, 0, "Wingdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "openClick")
    GUICtrlSetTip(-1, "Öffnen")
    $Label1 = GUICtrlCreateLabel("Titel------------------------", 34, 154, 123, 19)
    GUICtrlSetFont(-1, 9, 400, 0, "Arial")
    GUICtrlSetColor(-1, 0xFFFFFF)
    $xit = GUICtrlCreateLabel("X", 144, 212, 18, 28)
    GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "xitClick")
    GUICtrlSetTip(-1, "Exit")
    $mini = GUICtrlCreateLabel("2", 8, 216, 20, 23)
    GUICtrlSetFont(-1, 12, 400, 0, "Webdings")
    GUICtrlSetColor(-1, 0xFFFFFF)
    GUICtrlSetOnEvent(-1, "miniClick")
    GUICtrlSetTip(-1, "Minimize")
    $ListView1 = GUICtrlCreateListView("Titel|Länge|Pfad", 2, 1, 161, 145)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 100)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 57)
    ;GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 0) ;Pfad verstecken

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

    GUISetState(@SW_SHOW)
    WinSetTrans("Musik-Player", "", 220)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    Sleep(100)
    WEnd

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

    Func backClick()

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

    EndFunc ;==>backClick
    Func ForClick()

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

    EndFunc ;==>ForClick
    Func miniClick()
    GUISetState(@SW_MINIMIZE)
    EndFunc ;==>miniClick
    Func eintragen($FName)
    Local $szDrive, $szDir, $szFName, $szExt
    ConsoleWrite($FName & @CRLF)
    _PathSplit($FName, $szDrive, $szDir, $szFName, $szExt)
    GUICtrlCreateListViewItem($szFName & "|" & "|" & $FName, $ListView1)
    EndFunc ;==>eintragen

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

    Func openClick()
    Global $Songchosen = FileOpenDialog("Musik wählen", @MyDocumentsDir, "Audio (*.mp3;*.wma;*.wav;*.mp4)", 1 + 2 + 4)
    If Not @error Then
    $arChosenSongs = StringSplit($Songchosen, "|")
    If IsArray($arChosenSongs) Then ;Mehrfachauswahl
    For $i = 2 To UBound($arChosenSongs) - 1
    eintragen($arChosenSongs[1] & "\" & $arChosenSongs[$i])
    Next
    Else
    eintragen($Songchosen)
    EndIf
    EndIf
    EndFunc ;==>openClick
    Func PlayClick()
    $aItem = _GUICtrlListView_GetItemTextArray($ListView1)
    MsgBox(0,$aItem[1],"Pfad: " & $aItem[3] & @CRLF & "würde gespielt!"); $aItem[1] = Titel, [2] = Länge (woher?), [3] = Pfad
    ShellExecute($aItem[3])
    EndFunc ;==>PlayClick

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

    Func xitClick()
    Exit
    EndFunc ;==>xitClick

    [/autoit]

    mfg (Auto)Bert