Funktionreferenz


_SoundPos

Beschreibung anzeigen in

Gibt die aktuelle Position der Sounddatei an

#include <Sound.au3>
_SoundPos ( $aSndID [, $iMode = 1] )

Parameter

$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

Rückgabewert

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.

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 <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)