hallo leute
ich arbeite gerade an einem musik abspiel programm
das sieht ja alles schon ganz gut aus aber wie schaffe ich es, dass wenn ein lied vorbei ist, dass der dann direkt das nächste macht und während nem lied soll man natürlich auch noch alles andere machen können
danke
DFPWare
Spoiler anzeigen
#include <Sound.au3>
#include <File.au3>
#include <GUIConstantsEx.au3>
Global $titel = _FileListToArray(@ScriptDir&"\Music","*.mp3",1)
Global $titelnummer = 1
Global $sound
Global $volume = 100
Global $titelgui = "Music Player - " & $titel[$titelnummer]
Global $size = UBound($titel)
Global $var = 1
Global $balken
Dim $groessetitel[$size]
Dim $listitem[$size]
Dim $string
Dim $length[5]
SoundSetWaveVolume($volume)
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("Titel |Größe|Länge",10,130,480,390)
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
setbalken()
WEnd
Func play($nummer)
$sound = _SoundOpen(@ScriptDir&"\Music\"&$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(@ScriptDir&"\Music\"&$titel[$i])
$length2 = StringSplit($length1,":")
$length = $length2[2]&":"&$length2[3]
$listitem[$i] = GUICtrlCreateListViewItem($titel[$i]&"|"&$groessetitel[$i]&"|"&$length,$list)
Next
EndFunc
Func getgroesse()
For $i=1 To $size-1
$groessetitel[$i] = FileGetSize(@ScriptDir&"\Music\"&$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)
;~ MsgBox(0,"",$balken)
EndFunc