UDF > Sound >


_SoundOpen

Ouvre un fichier audio pour une utilisation avec d'autres fonctions _Sound

#include <Sound.au3>
_SoundOpen ( $sFilePath )

Paramètre

$sFilePath Nom complet du fichier son

Valeur de retour

Succès: Retourne un tableau de 4 éléments contenant les informations suivantes:
    $aArray[0] = Chaîne d'identification du fichier son
    $aArray[1] = Facteur de correction de la longueur VBR
    $aArray[2] = Facteur de correction de la synchronisation VBR
    $aArray[3] = Marqueur Sound ID
Échec: Retourne 0 et définit @error <> 0.
@error: 1 - Erreur d'ouverture MCI
2 - Le fichier n'existe pas
@extended: Entier autre que 0 = Erreur MCI

Remarque

Bien que beaucoup de fonctions _Sound...() accepteront le nom de fichier comme paramètre, s'il est possible que le fichier soit encodé VBR (débit binaire variable), il est fortement recommandé d'utiliser _SoundOpen() préalablement et d'utiliser ensuite le tableau retourné comme paramètre d'identité dans les autres fonctions _Sound...(). En effet, la DLL MCI suppose que tous les fichiers sont encodés CBR (débit constant de bit) et produit des résultats incorrects pour ces fonctions _Sound...() avec la longueur et la position quand le fichier son a été encodé VBR (débit binaire variable). Si vous utilisez le tableau en tant que paramètre ID avec les fonctions _Sound...() qui modifient les facteurs de correction VBR (_SOUNDSTOP()) le tableau ID sera mise à jour en cas de besoin.
Les éléments individuels du tableau retourné n'ont aucune utilité en dehors des fonctions _Sound et leur usage interne est transparent pour l'utilisateur.

En relation

_SoundClose, _SoundLength, _SoundPause, _SoundPlay, _SoundPos, _SoundResume, _SoundStatus, _SoundStop

Exemple

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

Local $aSound = _SoundOpen(@WindowsDir & "\media\tada.wav")
If @error = 2 Then
    MsgBox($MB_SYSTEMMODAL, "Error", "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, "Error", "L'ouverture a échouée." & @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, "Succès", "Le fichier a été ouvert avec succès")
EndIf

_SoundClose($aSound)