UDF > Sound >


_SoundSeek

Positionne la lecture du son à la position spécifiée

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

Paramètres

$aSndID Tableau d'identificatioàn du son retourné par _SoundOpen()
$iHour Heure de la nouvelle position
$iMin Minute de la nouvelle position
$iSec Seconde de la nouvelle position

Valeur de retour

Succès: Retourne 1.
Échec: Retourne 0 et définit @error <> 0.
@error: 1 = échec de la fonction
3 = ID du son invalide. Utiliser le tableau retourné par _SoundOpen().

Remarque

Après l'utilisation de _SoundSeek() sur un son, _SoundPlay() doit être utilisé pour reprendre la lecture.
L'utilisation du tableau ID retourné par _SoundOpen() est obligatoire avec cette fonction pour s'assurer que le fichier est lu à partir de la position correcte, indépendamment du type d'encodage.
Le tableau d'ID du son doit être mis à jour par la fonction car le facteur de correction de synchronisation VBR peut avoir été altéré.

En relation

_SoundPlay

Exemple

#include <MsgBoxConstants.au3>
#include <Sound.au3>

Local $aSound = _SoundOpen(@WindowsDir & "\media\tada.wav")
If @error = 2 Then
    MsgBox($MB_SYSTEMMODAL, "Erreur", "Le fichier n'existe pas!")
    Exit
ElseIf @extended <> 0 Then
    Local $iExtended = @extended ; Parce que @extended sera défini après DllCall.
    Local $tText = DllStructCreate("char[128]")
    DllCall("winmm.dll", "short", "mciGetErrorStringA", "str", $iExtended, "ptr", DllStructGetPtr($tText), "int", 128)
    MsgBox($MB_SYSTEMMODAL, "Erreur", "L'ouverture a échoué." & @CRLF & "Numéro de l'erreur: " & $iExtended & @CRLF & "Description de l'erreur: " & DllStructGetData($tText, 1) & @CRLF & "Notez SVP: Le son peut toujours jouer correctement.")
Else
    MsgBox($MB_SYSTEMMODAL, "Success", "L'ouverture du fichier a réussi.")
EndIf
_SoundPlay($aSound, 0)

; Joue le son pendant une seconde.
Sleep(1000)

; Positionne la lecture à 2 secondes.
_SoundSeek($aSound, 0, 0, 2)
ConsoleWrite("Après _SoundSeek: " & _SoundPos($aSound, 2) & " _SoundStatus: " & _SoundStatus($aSound) & @CRLF)

_SoundSeek($aSound, 0, 0, 1)
ConsoleWrite("Après _SoundSeek1: " & _SoundPos($aSound, 2) & " _SoundStatus: " & _SoundStatus($aSound) & @CRLF)

_SoundPlay($aSound, 0)

Do
    Sleep(100)
Until _SoundPos($aSound, 2) >= _SoundLength($aSound, 2)

_SoundClose($aSound)