Ich hab das Problem, dass der Slider von diesem Playlistprogramm ab der hälfte aufhört zu Aktualisieren.
[autoit]
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <audio.au3>
#include <array.au3>
#include <file.au3>
#include <string.au3>
#include <GUIListBox.au3>
#include <Misc.au3>
#include <timers.au3>
#include <guislider.au3>
#include <GUIListBox.au3>
;folder erstellen
[/autoit][autoit][/autoit][autoit]if FileExists(@DesktopDir&"\playlister v2\") = 0 Then DirCreate(@DesktopDir&"\Playlister v2\")
if FileExists(@DesktopDir&"\playlister v2\list2filenamev2\") = 0 Then DirCreate(@DesktopDir&"\Playlister v2\list2filename\")
;var's
Dim $endguigetmsg = 0
Dim $startplaylist
Dim $next
dim $prev
Dim $delplaylist
Dim $erstellen
Dim $PausePlay
dim $Gerade
Dim $List1
Dim $sound
Dim $Slider1
;Startup Func's
[/autoit][autoit][/autoit][autoit]_Gui(1)
_guigetmsg(1)
;Internal Functions
[/autoit][autoit][/autoit][autoit]Func _Gui($onoff)
If $onoff = 1 Then
#region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Playlister", 617, 221, 150, 211)
$infolabel = GUICtrlCreateLabel("", 152, 24, 436, 40)
$erstellen = GUICtrlCreateButton("Erstellen:", 32, 16, 99, 65)
$startplaylist = GUICtrlCreateButton("Playlist start", 352, 72, 83, 25)
$PausePlay = GUICtrlCreateButton("Play", 40, 104, 75, 25)
$next = GUICtrlCreateButton("Nächster", 160, 152, 75, 25)
$prev = GUICtrlCreateButton("Vorheriger", 40, 152, 75, 25)
$List1 = GUICtrlCreateList("", 352, 104, 169, 97)
GUICtrlSetData(-1, "")
$Slider1 = _GUICtrlSlider_Create($Form1,16, 184, 302, 29,$TBS_TOOLTIPS)
$delplaylist = GUICtrlCreateButton("Playlist löschen", 440, 72, 83, 25)
GUISetState(@SW_SHOW)
_UpdateList()
#endregion
Else
GUISetState(@SW_HIDE,$Form1)
EndIf
EndFunc
Func _guigetmsg($onoff)
If $onoff = 1 Then
While $endguigetmsg = 0
_guigetmsgonce()
WEnd
Else
$endguigetmsg = 1
EndIf
EndFunc
Func _exit()
Global $endguigetmsg = 1
Exit
EndFunc
Func _guigetmsgonce()
Switch GUIGetMsg()
Case $gui_event_close
_exit()
Case $startplaylist
$read = _GUICtrlListBox_GetCurSel($List1)
$list2filename = FileReadLine(@DesktopDir&"\playlister v2\list2filename\"&$read&".list2filename",1)
_startplaylist($list2filename)
Case $next
$read = _GUICtrlListBox_GetCurSel($List1)
$list2filename = FileReadLine(@DesktopDir&"\playlister v2\list2filename\"&$read&".list2filename",1)
_next($list2filename)
Case $prev
$read = _GUICtrlListBox_GetCurSel($List1)
$list2filename = FileReadLine(@DesktopDir&"\playlister v2\list2filename\"&$read&".list2filename",1)
_prev($list2filename)
Case $delplaylist
$read = _GUICtrlListBox_GetCurSel($List1)
$list2filename = FileReadLine(@DesktopDir&"\playlister v2\list2filename\"&$read&".list2filename",1)
_deleteplaylist($list2filename)
Case $PausePlay
_pauseplay()
Case $erstellen
_erstellen()
EndSwitch
EndFunc
Func _erstellen()
GUICtrlSetData($Gerade,"Playlist wird erstellt")
$name = InputBox("", "wie soll es heissen? (a-z) ")
$folder = FileSelectFolder("Ordner auswählen", "", 2)
$firstfile = FileFindFirstFile($folder & "\*.mp3")
$file = @DesktopDir & "\Playlister v2\namestart" & $name & "nameend.txt"
_FileCreate($file)
_FileWriteToLine($file, 1, "0", 1)
$count = "0"
Do
_guigetmsgonce()
$nextfile = FileFindNextFile($firstfile)
$lenght = _SoundLength($folder & "\" & $nextfile, 2)
$succes = _FileWriteToLine($file, $count + 2, "<name>" & $folder & "\" & $nextfile & "</name><lenght>" & $lenght & "</lenght>", 1)
$count = $count + 1
Until $nextfile = ""
FileClose($firstfile)
GUICtrlSetData($List1,"")
_UpdateList()
EndFunc
Func _UpdateList()
$count = 0
Do
_GUICtrlListBox_DeleteString($List1,$count)
$count = $count + 1
Until _GUICtrlListBox_GetCount($List1) = 0
$countlist2filename = "0"
$firstfile = FileFindFirstFile(@DesktopDir & "\playlister v2\*.txt")
Do
$nextfile = FileFindNextFile($firstfile)
$nextfilename = _StringBetween($nextfile, "namestart", "nameend")
If IsArray($nextfilename) = 1 Then $nextfilename = $nextfilename[0]
If $nextfilename <> "" Then
_GUICtrlListBox_AddString($List1, $nextfilename)
MsgBox(0x0,"",$nextfilename)
_FileCreate(@DesktopDir & "\playlister v2\list2filename\"&$countlist2filename&".list2filename")
_FileWriteToLine(@DesktopDir & "\playlister v2\list2filename\"&$countlist2filename&".list2filename",1,$nextfilename,1)
$countlist2filename = $countlist2filename + 1
EndIf
Until $nextfile = ""
EndFunc
Func _startplaylist($_list2filename)
If _GUICtrlListBox_GetCurSel($List1) <> -1 Then
Do
GUICtrlSetData($PausePlay,"Pause")
$playcount = FileReadLine(@DesktopDir&"\playlister v2\namestart"&$_list2filename&"nameend.txt",1)+2
$read = FileReadLine(@DesktopDir&"\playlister v2\namestart"&$_list2filename&"nameend.txt",$playcount)
$between = _StringBetween($read,"<name>","</name>")
If IsArray($between) = 1 Then $between = $between[0]
Global $sound = _SoundOpen($between)
If $sound = 0 Then
_SoundStop($sound)
$play = 0
EndIf
_SoundPlay($sound)
Do
_sliderupdateonce($Slider1)
_guigetmsgonce()
Until _SoundStatus($sound) = "stopped"
_next($_list2filename)
Until _SoundStatus($sound) = 0
EndIf
EndFunc
Func _next($_list2filename)
_SoundStop($sound)
$reading = FileReadLine(@DesktopDir&"\playlister v2\namestart"&$_list2filename&"nameend.txt",1)
_FileWriteToLine(@DesktopDir&"\playlister v2\namestart"&$_list2filename&"nameend.txt",1,$reading+1,1)
_startplaylist($_list2filename)
EndFunc
Func _prev($_list2filename)
_SoundStop($sound)
$reading = FileReadLine(@DesktopDir&"\playlister v2\namestart"&$_list2filename&"nameend.txt",1)
_FileWriteToLine(@DesktopDir&"\playlister v2\namestart"&$_list2filename&"nameend.txt",1,$reading-1,1)
_startplaylist($_list2filename)
EndFunc
Func _deleteplaylist($list2filename)
[/autoit][autoit][/autoit][autoit]EndFunc
[/autoit][autoit][/autoit][autoit]Func _pauseplay()
If GUICtrlRead($PausePlay) = "Play" Then
$resume = _SoundResume($sound)
If $resume = 1 Then GUICtrlSetData($PausePlay,"Pause")
Else
$pause = _SoundPause($sound)
if $pause = 1 Then GUICtrlSetData($PausePlay,"Play")
EndIf
EndFunc
Func _sliderupdateonce($hwnd)
_GUICtrlSlider_setPos($hwnd, _SoundPos($sound,2) / _SoundLength($sound,2) * 100 )
EndFunc
Ich bitte um Hilfe und Dank im Vorraus!!
#edit: Meine Tests haben ergeben, dass _soundpos() nicht aktualisiert wird.