Funktionsreferenz


_SoundPos

Gibt die aktuelle Position der Sounddatei an.

#include <Sound.au3>
_SoundPos($aSnd_id [, $iMode])

Parameter

$aSnd_id 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 = hh:mm:ss wobei h = Stunden, m = Minuten und s = Sekunden sind
2 = Millisekunden

Rückgabewert

Erfolg: Soundposition
Fehler: 0 und setzt @error
@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.

Bemerkungen

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.

Verwandte Funktionen

_SoundLength, _SoundOpen

Beispiel


#include <Sound.au3>

Local $sound = _SoundOpen(@WindowsDir & "\media\Windows XP Startup.wav")
If @error = 2 Then
    MsgBox(0, "Fehler", "Die Datei existiert nicht.")
    Exit
ElseIf @extended <> 0 Then
    Local $iExtended = @extended ; Zuweisung, weil @extended nach DllCall-Aufruf geändert wird
    Local $stText = DllStructCreate("char[128]")
    DllCall("winmm.dll", "short", "mciGetErrorStringA", "str", $iExtended, "ptr", DllStructGetPtr($stText), "int", 128)
    MsgBox(0, "Fehler", "Öffnen fehlgeschlagen." & @CRLF & "Fehlernummer: " & $iExtended & @CRLF & "Fehlerbeschreibung: " & DllStructGetData($stText, 1) & @CRLF & "Beachte: Möglicherweise kann der Sound dennoch korrekt abgespielt werden.")
Else
    MsgBox(0, "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)