Gibt die aktuelle Position der Sounddatei an
#include <Sound.au3>
_SoundPos ( $aSndID [, $iMode = 1] )
$aSndID | Sound ID Array welches durch _SoundOpen() zurückgegeben wurde oder ein Dateiname |
$iMode | [optional] Dieses Flag legt fest, in welchem Format die Länge der Sounddatei zurückgegeben werden soll 1 = (Standard) hh:mm:ss wobei h = Stunden, m = Minuten und s = Sekunden sind 2 = Millisekunden |
Erfolg: | die Soundposition |
Fehler: | 0 und setzt das @error Flag auf ungleich null |
@Error: | 1 = $iMode ist ungültig 3 = Ungültige Sound ID. Es ist das zurückgegebene Array von _SoundOpen() oder ein gültiger Dateiname zu verwenden. |
Es ist zu empfehlen eine Sounddatei mit _SoundOpen() zu öffnen. Dadurch wird ein ID-Array statt des Dateinamens übergeben. Eine VBR enkodierte Datei könnte die falsche Position zurückgeben falls der Dateiname direkt an die Funktion übergeben wird.
#include <MsgBoxConstants.au3>
#include <Sound.au3>
Local $sound = _SoundOpen(@WindowsDir & "\media\Windows XP Startup.wav")
If @error = 2 Then
MsgBox($MB_SYSTEMMODAL, "Fehler", "Die Datei existiert nicht.")
Exit
ElseIf @extended <> 0 Then
Local $iExtended = @extended ; Zuweisung, weil @extended nach DllStructCreate() geändert wird
Local $stText = DllStructCreate("char[128]")
DllCall("winmm.dll", "short", "mciGetErrorStringA", "str", $iExtended, "struct*", $tText, "int", 128)
MsgBox($MB_SYSTEMMODAL, "Fehler", "Öffnen fehlgeschlagen." & @CRLF & "Fehlernummer: " & $iExtended & @CRLF & "Fehlerbeschreibung: " & DllStructGetData($stText, 1) & @CRLF & "Beachte: Möglicherweise kann der Sound dennoch korrekt abgespielt werden.")
Else
MsgBox($MB_SYSTEMMODAL, "Erfolgsmeldung", "Die Datei wurde erfolgreich geöffnet.")
EndIf
_SoundPlay($sound)
$splashtext = SplashTextOn("Abspielposition", _SoundPos($sound, 1), 300, 90, Default, Default, 18, Default, 55)
While 1
Sleep(100)
ControlSetText("Abspielposition", "", "Static1", _SoundPos($sound, 1))
If _SoundPos($sound, 2) >= _SoundLength($sound, 2) Then ExitLoop
WEnd
_SoundClose($sound)