Bonjour,
J'ai un probleme avec l'utilisation de la fonction DirectSoundCaptureBuffer.ReadBuffer.
Mon projet est de récupérer ce qu'entend le micro dans un tableau.
J'utilise VB 2005, DirectX8
Voila le code que j'ai déjà créé :
Dim DX As New DirectX8
Dim DS As DirectSound8
Dim DSC As DirectSoundCapture8
Dim d As DirectSoundEnum8
Dim DSCB As DirectSoundCaptureBuffer8
Dim BufferDonnee() As Integer
Dim Curseur As DxVBLibA.DSCURSORS
Au chargement du programme je fais énuméré la liste des matériels :
d = DX.GetDSCaptureEnum()
Les matériels trouvés sont affichés dans une ComboBox.
Puis je valide le choix du matériel par :
DSC = DX.DirectSoundCaptureCreate(d.GetGuid(ComboBox1.SelectedIndex + 1))
Plus loin je crée mon CaptureBuffer :
DSCB = DSC.CreateCaptureBuffer(BufferDesc)
Après avoir renseigné le paramètre BufferDesc bien entendu !
Puis enfin par clique sur un bouton je lance la capture avec :
DSCB.Start(CONST_DSCBSTARTFLAGS.DSCBSTART_LOOPING)
et je récupère (ou plutot je tente, car là est mon problème) avec la méthode :
DSCB.GetCurrentPosition(Curseur)
ReDim BufferDonnee(Curseur.lWrite)
DSCB.ReadBuffer(0, NbByte, BufferDonnee(0), CONST_DSCBLOCKFLAGS.DSCBLOCK_DEFAULT)
Donc en gros je voudrais récupérer dans le tableau BufferDonnee() les acquisitions depuis le début du buffer jusque là où a dernière donnée a été enregistrée.
Et voilà le message d'erreur que j'obtiens :
"La référence d'objet n'est pas définie à une instance d'un objet" Kékidi ???![]()
Cela fait 4, 5 jours que je suis bloqué la dessus, je cherche partout sur le net et je ne trouve personne qui ait fait appel à cette méthode autrement.(je ne trouve surtout pas d'exemple en vb 2005). Car je rappelle que j'utilise vb2005 pour ce programme.
J'ai fait des tests, je suis certain que mon pointeur n'est pas NULL.
Si quelqu'un a une idée, qu'il n'hésite surtout pas à m'aider
Je fais ce programme pour la fac, c'est un projet que je dois rendre dans un semaine !!
J'espère avoir trouvé une solution d'ici là....
Petit plus, je rencontre le meme probleme avec la fonction WriteBuffer !!!![]()
Merci d'avance !!! Bonne programmation .........![]()
Partager