UDF > WinAPIEx > Miscellaneous > Audio >


_WinAPI_PlaySound

Joue un son sp�cifi� par un nom de fichier, une ressource ou un �v�nement syst�me

#include <WinAPIMisc.au3>
_WinAPI_PlaySound ( $sSound [, $iFlags = $SND_SYSTEM_NOSTOP [, $hInstance = 0]] )

Param�tres

$sSound La cha�ne qui sp�cifie le son � jouer. La longueur maximale est de 255 caract�res. Si $sSound est vide, toute forme d'onde sonore en cours de lecture est stopp�e.
$iFlags [optionnel] Les flags relatifs au son � jouer. Ce param�tre peut prendre une ou plusieurs des valeurs suivantes:
$SND_APPLICATION
$SND_ALIAS
$SND_ALIAS_ID
$SND_ASYNC
$SND_FILENAME
$SND_LOOP
$SND_M EMORY
$SND_NODEFAULT
$SND_NOSTOP
$SND_NOWAIT
$SND_PURGE
$SND_RESOURCE
$SND_SYNC

Windows Vista ou une version ult�rieure
$SND_SENTRY
$SND_SYSTEM

Les trois flags ($SND_ALIAS, $SND_FILENAME, et $SND_RESOURCE) d�termine si le nom est interpr�t� comme un alias pour un �v�nement syst�me, un nom de fichier, ou un identifiant de ressource. Si aucun de ces flags n'est sp�cifi�, _WinAPI_PlaySound() recherche dans le registre ou dans le fichier Win.ini une association avec le nom du son sp�cifi�. Si une association est trouv�e, l'�v�nement son est jou�. Si aucune association se trouve dans le registre, le nom est interpr�t� comme un nom de fichier.

Si le flag $SND_ALIAS_ID est sp�cifi� dans $iFlags, le param�tre $sSound doit avoir l'une des valeurs $SND_ALIAS_*.
(Voir MSDN pour plus d'informations)
$hInstance [optionnel] Handle du fichier ex�cutable qui contient la ressource � charger. Si $iFlags ne contient pas $SND_RESOURCE, ce param�tre sera ignor�.

Valeur de retour

Succ�s: Retourne True
�chec: Retourne False

Voir aussi

Consultez PlaySound dans la librairie MSDN.

Exemple

#include <APIMiscConstants.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIMisc.au3>

Local Const $sWav = @ScriptDir & '\Extras\Airplane.wav'

; Copie Airplane.wav dans la m�moire
Local $dWav = FileRead($sWav)
If @error Then
    MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), 'Erreur', 'Lecture impossible "'& $sWav & '"')
    Exit
EndIf

Local $tWav = DllStructCreate('byte['& BinaryLen($dWav) & ']')
DllStructSetData($tWav, 1, $dWav)
Local $pWav = DllStructGetPtr($tWav)

; Cr�e une GUI
Local $hForm = GUICreate('Test '& StringReplace(@ScriptName, '.au3', '()'), 200, 200)
Local $idButton = GUICtrlCreateButton('Play', 70, 70, 60, 60)
GUISetState(@SW_SHOW)

Local $bPlay = False, $iMsg = GUIGetMsg() 
While $iMsg <> $GUI_EVENT_CLOSE
    If $iMsg = $idButton Then
        $bPlay = Not $bPlay
        If $bPlay Then
            _WinAPI_PlaySound($pWav, BitOR($SND_ASYNC, $SND_LOOP, $SND_MEMORY))
            GUICtrlSetData($idButton, 'Stop')
        Else
            _WinAPI_PlaySound('')
            GUICtrlSetData($idButton, 'Play')
        EndIf
    EndIf
    $iMsg = GUIGetMsg()
WEnd