Bonjour,

depuis quelques semaines je travaille sur DirectSound.
Je peux donc lire des fichiers WAVES linéaires 8 et 16 bits.
Cependant, j'ai besoin de concevoir un Buffer identique au Buffer DirectSound (inaccessible sur certaines propriétés).

Ma question :
Je charge un fichier WAVE à partir d'un TFileStream que je transmet au Buffer directSound :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
DSBuffer.Lock(BeginPos,
                           BuffLength,
                           AudioPTR1,
                           AudioBytes1,
                           AudioPTR2,
                           AudioBytes2,
                           0);
 
Datas.Read(AudioPTRtmp8[0],AudioBytes1);
 
CopyMemory(AudioPTR1, AudioPTRtmp8, BuffTransLength);
 
DSBuffer.Unlock(AudioPTR1,AudioBytes1,audioptr2,audiobytes2);
BeginPos : Position dans le fichier à partir de laquelle je veux envoyer les données à DSound.
BuffLength : Taille du buffer souhaité
AudioPTR1 : Pointeur vers la zone mémoire locked où je transfere les données
AudioBytes1: Taille que DSOund a pu charger.

Comment dois-je faire pour avoir strictement le même buffer que DSound ?
Pour le moment je faisais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
CopyMemory( @Buf8 [BeginPos],  AudioPTR, Length);
Est-ce que c'est ca ? Ou non ?
Je n'ai pas de moyens de vérifier.
Enfin, dernière question, comment obtenir la position générale dans le fichier (et non dans le Buffer) ?

Meric de votre aide