Hey Leute
ich habe mal einen Musik Player gemacht, bei dem man den Pfad beim Programmstart auswählen kann
dazu habe ich eine gui gemacht(den zweiten radiobutton bitte aussenvor lassen, das kommt noch ;))
diese gui soll mit winkill oder auch winclose bei dem start des hauptfensters geschlossen werden!
das klappt jedoch nicht, es wird erst die liste gefüllt und dann werden beide fenster geschlossen
könnt ihr mir helfen?
danke
DFPWare
Spoiler anzeigen
#include <Sound.au3>
#include <File.au3>
#include <GUIConstantsEx.au3>
GUICreate("Pfad auswählen",400,400)
$ok = GUICtrlCreateButton("OK",110,350,135,40)
$cancel = GUICtrlCreateButton("Cancel",255,350,135,40)
$radio1 = GUICtrlCreateRadio("Pfad auswählen",10,10)
$radio2 = GUICtrlCreateRadio("Alten Pfad behalten",10,50) ;<<<=====================================ERSTMAL#AUSLASSEN!!!!
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $cancel
Exit
Case $GUI_EVENT_CLOSE
Exit
Case $ok
$pfadzwischen = FileSelectFolder("Musikordner auswählen","")
MsgBox(0,"",$pfadzwischen)
ExitLoop
EndSwitch
WEnd
Global $pfad = $pfadzwischen&"\"
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]WinKill("Pfad auswählen") ;<<<====================================================PROBLEM!!!!!! alternativ WinClose
[/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)
$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()
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