• Hey Leute ich hab mich auch mal an nen Music Player gesetzt und das is dabe rausgekommen :D
    guckts euch einfach mal an und sagt was ihr davon haltet und ich bin für verbesserungen sowieso immer offen;)

    Spoiler anzeigen
    [autoit]

    #include <Sound.au3>
    #include <File.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>

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

    Global $pfad = @ScriptDir&"\Music\"
    Global $titel = _FileListToArray($pfad,"*.mp3",1)
    If IsArray($titel) = 0 Then
    MsgBox(0,"ERROR","In dem ausgewählten Verzeichnis befinden sich keine .mp3 Dateien")
    Exit
    EndIf
    Global $titelnummer = 1
    Global $sound
    Global $volume = 100
    Global $titelgui = "Music Player - " & $titel[$titelnummer]
    Global $size = UBound($titel)
    Global $var = 1
    Global $balken
    Global $shuffle = 1
    Dim $groessetitel[$size]
    Dim $listitem[$size]
    Dim $string
    Dim $length[5]

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

    SoundSetWaveVolume($volume)

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

    GUICreate($titelgui,500,500)
    $B1 = GUICtrlCreateButton("<",10,10,50,50)
    $B2 = GUICtrlCreateButton(">",70,10,50,50)
    $B3 = GUICtrlCreateButton("+",130,10,50,50)
    $B4 = GUICtrlCreateButton("-",190,10,50,50)
    $B5 = GUICtrlCreateButton("| |",250,10,50,50)
    $B6 = GUICtrlCreateButton("Musik auswählen",310,10,110,50)
    $L1 = GUICtrlCreateLabel("Volume: "&$volume&"%",10,70)
    $L2 = GUICtrlCreateLabel("Titelanzahl: "&$size-1,120,70)
    $L3 = GUICtrlCreateLabel("Aktueller Titel: "&$titelnummer,230,70)
    $P = GUICtrlCreateProgress(10,100,480,20)

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

    $list = GUICtrlCreateListView("Nr.|Titel |Größe|Länge",10,130,480,360)
    GUISetState()
    getgroesse()
    listefuellen()
    play($titelnummer)

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $B1
    vorher()
    Case $msg = $B2
    nachher()
    Case $msg = $B3
    lauter()
    Case $msg = $B4
    leiser()
    Case $msg = $B5
    playpause()
    Case $msg = $B6
    pfadaendern()
    EndSelect

    For $i=1 To $size-1
    Switch $msg
    Case $listitem[$i]
    anderer($i)
    EndSwitch
    Next

    titelende()
    setbalken()
    WEnd

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

    Func play($nummer)
    $sound = _SoundOpen($pfad&$titel[$nummer])
    _SoundPlay($sound, 0)
    EndFunc

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

    Func vorher()
    If $titelnummer >= 2 Then
    _SoundClose($sound)
    $titelvorher = $titelgui
    $titelnummer = $titelnummer - 1
    play($titelnummer)
    $titelnachher = "Music Player - " & $titel[$titelnummer]
    WinSetTitle($titelvorher,"",$titelnachher)
    $titelgui = $titelnachher
    GUICtrlSetData($L3,"Aktueller Titel: "&$titelnummer)
    Else
    _SoundClose($sound)
    $titelvorher = $titelgui
    $titelnummer = $size-1
    play($titelnummer)
    $titelnachher = "Music Player - " & $titel[$titelnummer]
    WinSetTitle($titelvorher,"",$titelnachher)
    $titelgui = $titelnachher
    GUICtrlSetData($L3,"Aktueller Titel: "&$titelnummer)
    EndIf
    EndFunc

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

    Func nachher()
    If $titelnummer <= $size-2 Then
    _SoundClose($sound)
    $titelvorher = $titelgui
    $titelnummer = $titelnummer + 1
    play($titelnummer)
    $titelnachher = "Music Player - " & $titel[$titelnummer]
    WinSetTitle($titelvorher,"",$titelnachher)
    $titelgui = $titelnachher
    GUICtrlSetData($L3,"Aktueller Titel: "&$titelnummer)
    Else
    _SoundClose($sound)
    $titelvorher = $titelgui
    $titelnummer = 1
    play($titelnummer)
    $titelnachher = "Music Player - " & $titel[$titelnummer]
    WinSetTitle($titelvorher,"",$titelnachher)
    $titelgui = $titelnachher
    GUICtrlSetData($L3,"Aktueller Titel: "&$titelnummer)
    EndIf
    EndFunc

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

    Func lauter()
    If $volume < 100 Then
    $volume = $volume + 10
    EndIf

    SoundSetWaveVolume($volume)
    GUICtrlSetData($L1,"Volume: "&$volume&"%")
    EndFunc

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

    Func leiser()
    If $volume > 0 Then
    $volume = $volume - 10
    EndIf

    SoundSetWaveVolume($volume)
    GUICtrlSetData($L1,"Volume: "&$volume&"%")
    EndFunc

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

    Func playpause()
    If $var = 1 Then
    _SoundPause($sound)
    GUICtrlSetData($B5,"|>")
    $var = $var*-1
    Else
    _SoundResume($sound)
    GUICtrlSetData($B5,"| |")
    $var = $var*-1
    EndIf
    EndFunc

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

    Func listefuellen()
    For $i=1 To $size-1
    $length1 = _SoundLength($pfad&$titel[$i])
    $length2 = StringSplit($length1,":")
    $length = $length2[2]&":"&$length2[3]
    $listitem[$i] = GUICtrlCreateListViewItem($i&"|"&$titel[$i]&"|"&$groessetitel[$i]&"|"&$length,$list)
    Next
    EndFunc

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

    Func getgroesse()
    For $i=1 To $size-1
    $groessetitel[$i] = FileGetSize($pfad&$titel[$i])/1000000
    $groessetitel[$i] = Round($groessetitel[$i],2)
    Next
    EndFunc

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

    Func anderer($anderer)
    _SoundClose($sound)
    $titelvorher = $titelgui
    play($anderer)
    $titelnachher = "Music Player - " & $titel[$anderer]
    WinSetTitle($titelvorher,"",$titelnachher)
    GUICtrlSetData($L3,"Aktueller Titel: "&$anderer)
    $titelgui = "Music Player - " & $titel[$anderer]
    EndFunc

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

    Func setbalken()
    $length = _SoundLength($sound)
    $pos = _SoundPos($sound)
    $string1 = StringSplit($pos,":")
    $string2 = StringSplit($length,":")
    $lengthrichtig = $string2[2]*60+$string2[3]
    $posrichtig = $string1[2]*60+$string1[3]
    $balken = $posrichtig/$lengthrichtig*100
    GUICtrlSetData($P,$balken)
    EndFunc

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

    Func titelende()
    If _SoundPos($sound) = _SoundLength($sound) Then
    nachher()
    EndIf
    EndFunc

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

    Func pfadaendern()
    _SoundClose($sound)
    _GUICtrlListView_DeleteAllItems($list)
    $pfadzwischen = FileSelectFolder("Musikordner auswählen","")
    $pfad = $pfadzwischen&"\"
    $titel = _FileListToArray($pfad,"*.mp3",1)
    $size = UBound($titel)
    listefuellen()
    EndFunc

    [/autoit]
  • Spoiler anzeigen
    Code
    >"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\XXXX\Desktop\Music Player\Soundplayer.au3"    
    C:\Users\XXXX\Desktop\Music Player\Soundplayer.au3 (9) : ==> Subscript used with non-Array variable.:
    Global $titelgui = "Music Player - " & $titel[$titelnummer]
    Global $titelgui = "Music Player - " & $titel^ ERROR
    >Exit code: 1    Time: 0.235
  • Hallo DFPWare,

    der Fehler erscheint, weil CampWeb in dem von dir vorgegebenen fixen Pfad keine MP3-Files hat. Den Fehler kannst du mit einer @Error bzw.

    [autoit]

    IsArray

    [/autoit]

    Abfrage abfangen. Du solltest auch dein Skript dahingehend verändern, dass der Anwender den Ordner selbst auswählen darf,

    frohe Weihnachten autoBert

  • Im Grunde: FileOpenDialog, aber das stört:

    Spoiler anzeigen
    Code
    C:\Program Files\AutoIt3\Include\Sound.au3 (346) : ==> Subscript used with non-Array variable.:
    __SoundMciSendString("set " & $aSndID[0] & " time format miliseconds")
    __SoundMciSendString("set " & $aSndID^ ERROR
    >Exit code: 1    Time: 1.050
  • Wenn keine Datei im Verzeichnis ist, sollte eher ein Fileopendialog kommen, und keine Msgbox.
    Edit: jetzt hab ich ne mp3 im Verzeichnis und der player hängt sich sofort auf ^^

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

    Einmal editiert, zuletzt von Twodollarbillie (29. Januar 2011 um 16:35)