Function Reference

_SoundSeek

音声を指定された位置にあわせます。

#include <Sound.au3>
_SoundSeek (ByRef $aSnd_id, $iHour, $iMin, $iSec )

 

パラメータ

$aSnd_id _SoundOpen()によって返される音声ID、またはファイル名
$iHour あわせる時間数
$iMin あわせる分数
$iSec あわせる秒数

 

返し値

成功: 1
失敗: 0を返し、@errorを設定します。
@error: 1 = 失敗
3 = 無効な音声IDです。_SoundOpen()の返す配列を使用して下さい。

 

注意

音声に_SoundSeekを使用した後は、再生を再開するために_SoundPlayを使用する必要があります
この関数でエンコーディング方法によらずに確実に正しい位置からファイルが再生するためには_SoundOpenが返すID配列を使用することが必要です。このIDはVBRタイミング補正係数が変更されるたびに関数によって更新されます。

 

関連

_SoundPlay

 


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

;音声の1秒目を再生
Sleep(1000)

;音声を2秒目にあわせる
_SoundSeek($sound, 0, 0, 2)
ConsoleWrite("After _SoundSeek: " & _SoundPos($sound, 2) & " _SoundStatus: " &_SoundStatus($sound)& @CRLF)
_SoundSeek($sound, 0, 0, 1)
ConsoleWrite("After _SoundSeek1: " & _SoundPos($sound, 2) & " _SoundStatus: " &_SoundStatus($sound)& @CRLF)

_SoundPlay($sound, 0)
While 1
    Sleep(100)
    If _SoundPos($sound, 2) >= _SoundLength($sound, 2) Then ExitLoop
WEnd

_SoundClose($sound)