Directx tuto 5 : gérer le son

Soyez le premier à donner votre avis sur cette source.

Vue 4 529 fois - Téléchargée 594 fois

Description

JE CONSIDÈRE QUE VOUS AVEZ AU MINIMUM LES CONNAISSANCES PRÉSENTES DANS MES PRÉCÉDENTS TUTORIAUX.

Salut tous les codeurs, se tuto est pour tous le monde, mais je le fais suite à la demande de gandalfkhorne, donc je vais vous expliquez comment mettre un peux de son dans vos applications directX.

Veuillez m'excuser, mais je ne sais pas encore utiliser le midi donc je ferai pour l'instant que le wav.

Source / Exemple :


Tous d abord se le format WAV (Waveform Audio Vector) à était créé par Microsoft. 8, 16 ou 32 bits avec des fréquences de 11 à 44 KHz (en général) et mono ou stéréo, c'est ce que nous allons gérer.

Pour pouvoir utiliser les fichiers au format wav il faut utiliser DirectSound, donc initialiser celui-ci en premier :

Public DS               As DirectSound               ' Explicite non ?

Ensuite il faut donner les informations nécessaires à directsound pour qu'il sache lire notre format wav :

Set DS = DX.DirectSoundCreate("")                      'Pas de problème, création de ' l'objet DirectSound

    DS.SetCooperativeLevel Form1.hWnd, DSSCL_PRIORITY   'C'est la form 1 qui 
'gère les sorties du son et que c'est notre application qui a les priorités sur les 
'autres (au niveau du son)

    If Err.Number <> 0 Then          'Dans le cas d'une erreur
                 MsgBox ("Impossible de démarrer DirectSound. Vérifiez que votre carte son est bien installée.")
                 End                          ' On arrete l'application
    End If
    
    
Dim bufferDesc As DSBUFFERDESC          'Cette variable accueille les caractéristiques 'nécessaires à la lecture.

bufferDesc.lFlags = DSBCAPS_CTRLFREQUENCY Or DSBCAPS_CTRLPAN Or DSBCAPS_CTRLVOLUME Or DSBCAPS_STATIC
'Les modes du format, la fréquence, le pan, le volume et on charge tout le fichier 
'son en mémoire avec DSBCAPS_STATIC

    Dim waveFormat As WAVEFORMATEX                      'Définition du format wav 
'dans cette variable
waveFormat.nFormatTag = WAVE_FORMAT_PCM     'PCM = Pulse Code Modulation
waveFormat.nChannels = 2                                  'Rappeler vous les vieux nous
waveFormat.lSamplesPerSec = 22050                    'devions spécifier tout cela ...
waveFormat.nBitsPerSample = 16
waveFormat.nBlockAlign = waveFormat.nBitsPerSample / 8 * waveFormat.nChannels
    
waveFormat.lAvgBytesPerSec = waveFormat.lSamplesPerSec * waveFormat.nBlockAlign

Et voilà maintenant on est prés à mettre en mémoire un fichier wav pour le jouer.

C est presque comme pour DirectDraw :

Dim MonWAV As DirectSoundBuffer        'Création d'une mémoire accueillant le 'fichier son

Set MonWAV = DS.CreateSoundBufferFromFile(App.Path & "\MonWAV", bufferDesc, waveFormat)     'On donne le path du fichier

Et voila notre fichier son est en mémoire.

Pour le jouer rien de plus simple :

MonWAV.Play DSBPLAY_DEFAULT     'Play = jouer (lol)

Et voila pas plus pour un fichier son.

Conclusion :


Voili voilou, ce tuto un peu cour vous permet de mettre du son dans votre application .....

Vous pouvez même mettre une partie de ce code dans le moteur de mon précédent tuto ......

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

ciberrique
Messages postés
591
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
Je ne vois pas le probleme en faite.
cs_sergiooi
Messages postés
53
Date d'inscription
vendredi 6 octobre 2006
Statut
Membre
Dernière intervention
7 octobre 2009
-
re salut!!! non ce n'est pas un jeu d'échec, c'est un jeu de tetra master(ff9). L'ordinateur joue(choisis une place et si elle est libre, joue la carte). jutilise des frames pour la couleurs des cartes(bleu pour player , rouge pour cpu et gris pour case libre) et j'ai mis des picturebox au milieu de chaque frames (pour afficher la carte).
si tu peux m'éclairer un peu ce serais tres apprécié et surtout ,merci d'avance!!
ciberrique
Messages postés
591
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
Salut (deja un bon point tu as dis salut^^).
Alors effectivement ce n'est pas le bon topic, pour poser une question tu as une rubrique sur le forum (j'ai besoin d'aide).
Autrement, pour l'IA je dirais que je ne connais aucun tuto dessus :s.

Toutefois, suivant ce que tu veux faire j'accepte de t'aider. Mais, quand tu dis l'ordinateur joue automatiquement, ca veux dire quoi ? En gros qu'est ce que fait l'ordinateur. Ensuite tour par tour, tu veux dire que tu fais un jeu d'echec ?
cs_sergiooi
Messages postés
53
Date d'inscription
vendredi 6 octobre 2006
Statut
Membre
Dernière intervention
7 octobre 2009
-
Hey ! Salut! je sais que ce n'est pas le bon topic mais je ne trouve pas ce que je cherche... :(
Connais tu un tuto sur comment coder un "IA" pour que dans un jeu tour par tour, l'ordinateur joue automatiquement.

si non , merci quand meme!!!
ciberrique
Messages postés
591
Date d'inscription
lundi 25 août 2003
Statut
Membre
Dernière intervention
18 juillet 2010
-
De rien c'est normal, ^^.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.