Hey Leute
ich will meinen Musikplayer noch etwas benutzerfreundlicher machen und dafür die "Musikpfad auswählen" Funktion einbauen;)
jetzt bekomme ich aber eine Fehlermeldung, die ich nicht versteh...
Ich hoffe ihr könnt mir helfen;)
(Damit nicht noch ein fehler kommt müsst ihr einen Ordner "Music" im gleichen Verzeichnis erstellen;))
Script:
Spoiler anzeigen
#include <Sound.au3>
#include <File.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
;~ $pfadzwischen = FileSelectFolder("Musikordner auswählen","")
[/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]
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)
$list = GUICtrlCreateListView("Nr.|Titel |Größe|Länge",10,130,480,360)
GUISetState()
getgroesse()
listefuellen()
play($titelnummer)
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
Func play($nummer)
$sound = _SoundOpen($pfad&$titel[$nummer])
_SoundPlay($sound, 0)
EndFunc
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
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
Func lauter()
If $volume < 100 Then
$volume = $volume + 10
EndIf
SoundSetWaveVolume($volume)
GUICtrlSetData($L1,"Volume: "&$volume&"%")
EndFunc
Func leiser()
If $volume > 0 Then
$volume = $volume - 10
EndIf
SoundSetWaveVolume($volume)
GUICtrlSetData($L1,"Volume: "&$volume&"%")
EndFunc
Func playpause()
If $var = 1 Then
_SoundPause($sound)
GUICtrlSetData($B5,"|>")
$var = $var*-1
Else
_SoundResume($sound)
GUICtrlSetData($B5,"| |")
$var = $var*-1
EndIf
EndFunc
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
Func getgroesse()
For $i=1 To $size-1
$groessetitel[$i] = FileGetSize($pfad&$titel[$i])/1000000
$groessetitel[$i] = Round($groessetitel[$i],2)
Next
EndFunc
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
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
Func titelende()
If _SoundPos($sound) = _SoundLength($sound) Then
nachher()
EndIf
EndFunc
Func pfadaendern()
_SoundClose($sound)
_GUICtrlListView_DeleteAllItems($list)
$pfadzwischen = FileSelectFolder("Musikordner auswählen","")
$pfad = $pfadzwischen&"\"
listefuellen()
EndFunc
Fehler(erscheint wenn man die neue Musik ausgewählt hat!):
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "D:\AutoIt Testplatz\MUSIXPLAYER\Soundplayer 2.0.au3"
D:\AutoIt Testplatz\MUSIXPLAYER\Soundplayer 2.0.au3 (165) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
$length = $length2[2]&":"&$length2[3]
$length = ^ ERROR
>Exit code: 1 Time: 17.061