現在の音声位置を返します。
#include <Sound.au3>
_SoundPos ( $aSnd_id [, $iMode ] )
パラメータ
$aSnd_id | _SoundOpen()によって返される音声ID、またはファイル名 |
$iMode | [オプション]返される音声位置のフォーマットを決めるフラグ 1 = hh:mm:ss h = 時間、m = 分、s = 秒 2 = ミリ秒 |
返し値
成功: | 音声位置 |
失敗: | 0を返し、@errorを設定します。 |
@error: | 1 = $iModeが無効です |
3 = 無効な音声IDです。_SoundOpen()の返す配列または有効なファイル名を使用して下さい。 |
注意
この関数ではファイル名を使用する代わりに_SoundOpen()で音声ファイルを開き、ID配列を渡すことを推奨します。ファイル名を直接この関数に渡した場合、VBRエンコードされたファイルでは正確な位置を取得できません。
関連
_SoundLength, _SoundOpen
例
#include <Sound.au3>
;音声ファイルを開く : Vistaで実行する場合は変更する必要あり
$sound = _SoundOpen(@WindowsDir & "\media\Windows XP Startup.wav")
If @error = 2 Then
MsgBox(0, "Error", "The file does not exist")
Exit
ElseIf @extended <> 0 Then
$extended = @extended ;DllCall後に@extendedが設定されるので代入
$stText = DllStructCreate("char[128]")
$errorstring = DllCall("winmm.dll", "short", "mciGetErrorStringA", "str", $extended, "ptr", DllStructGetPtr($stText), "int", 128)
MsgBox(0, "Error", "The open failed." & @CRLF & "Error Number: " & $extended & @CRLF & "Error Description: " & DllStructGetData($stText, 1) & @CRLF & "Please Note: The sound may still play correctly.")
Else
MsgBox(0, "Success", "The file opened successfully")
EndIf
_SoundPlay($sound, 0)
$splashtext = SplashTextOn("Current Position", _SoundPos($sound, 1), 300, 90, Default, Default, 18, Default, 55)
While 1
Sleep(100)
ControlSetText("Current Position", "", "Static1", _SoundPos($sound, 1))
If _SoundPos($sound, 2) >= _SoundLength($sound, 2) Then ExitLoop
WEnd
_SoundClose($sound)