|
DirectX / DirectSound
|
Création
d'un objet DirectSound
|
Utilisation de la fonction DirectSoundCreate
HRESULT DirectSoundCreate
|
Paramètre
|
Description
|
|
LPGUID lpGUID
|
Pointeur sur l'identificateur du péripherique de sortie
audio.NULL par défaut
|
|
LPDIRECTSOUND * ppDS
|
Adresse du pointeur vers l'interface DirectSound
|
|
LPUNKNOWN pUnkOuter
|
NULL par défaut car valeur non utilisée
|
#include <dsound.h>
LPDIRECTSOUND lpDirectSound; //Déclaration du pointeur de l'interface DirectSound
HRESULT hResultat;
hResultat = DirectSoundCreate ( NULL, &lpDirectSound, NULL);
// On doit tester le code retour
if (hResultat !=
DS_OK) throw
Exception( "Erreur sur la fonction DirectSoundCreate");
|
Définition
du niveau coopératif
|
Utilisation de la fonction SetCooperativeLevel
HRESULT SetCooperativeLevel
|
Paramètre
|
Description
|
|
HWND hWnd
|
Handle de la fenêtre de votre application.
|
|
DWORD dwLevel
|
Niveau coopératif.Voir liste ci dessous
|
|
Niveau
|
Avantages
|
Inconvénients
|
|
DDSCL_NORMAL
|
Coopération maximale avec les autres applications.
|
Impossible de modifier le format principal, on est donc limité
au format de sortie par défaut de DirectSound.
|
|
DDSCL_PRIORITY
|
Permet de modifier le format principal.
|
Risque de modification du format de sortie d'une autre application.
|
|
DDSCL_EXCLUSIVE
|
Accès exclusif au périphérique
|
Les autres applications sont muettes
|
|
DDSCL_WRITEPRIMARY
|
Accès au tampon principal pour faire du mixage personnalisé.
|
Exige un pilote DirectSound.Impossible de jouer des tampons secondaires.
|
hResultat = lpDirectSound->SetCooperativeLevel(Handle, DDSCL_NORMAL);
// On doit tester le code retour
if (hResultat !=
DS_OK) throw
Exception( "Erreur sur la fonction SetCooperativeLevel");
|
Libération
d'un objet DirectSound
|
if (lpDirectSound != NULL)
- {
- lpDirectSound->Release();
- lpDirectSound = NULL;
- }
|