Hvordan lage Wave data fra buffere i VB6

Hvordan lage Wave data fra buffere i VB6


I VB6, kan du bruke DirectX for å lage lyd, video og grafikk Windows-programmer. DirectX SDK er gratis fra Microsofts nettsted. The Direct objektet er hoved lydenhet objekt. Den kan brukes for lydeffekter i spill, og det kan håndtere flere lyder på en gang. Styr lydanlegget gjennom Direct eksempel panorering og volum. I VB6, kan du opprette et prosjekt for å lese buffer data til en WAV-fil via DirectX stedene.

Bruksanvisning

1 Klikk "Start", "Alle programmer" og "Visual Basic" for å åpne VB6. Klikk "Fil" og "New" for å opprette et nytt prosjekt. Skriv inn et navn for prosjektet. Angi en plassering for prosjektfiler.

2 Klikk på "Project" og "Referanser" for å legge til DirectX referanse for prosjektet. Tick ​​"DirectX 8 for Visual Basic Type Library" på "Referanser" -grensesnitt. Klikk på "OK".

3 Definere variabler for prosjektet. Legg til følgende kode i Form1.vb:
Dim dx Som New DirectX8
Dim ds Som DirectSound8
Dim buffer1 Som DirectSoundSecondaryBuffer8
Dim buffer2 Som DSBUFFERDESC

4 Initialdirect via kode:
Sett dx = Ny DirectX8
Sett ds = dx.DirectSoundCreate ( "")

5 Lag en buffer via kode:
Buffer2.fxFormat.nFormatTag = WAVE_FORMAT_PCM
Buffer2.fxFormat.nSize = 0
Buffer2.fxFormat.lExtra = 0
Buffer2.fxFormat.nChannels = 1
Buffer2.fxFormat.lSamplesPerSec = SRATE
Buffer2.fxFormat.nBitsPerSample = 16
Buffer2.fxFormat.nBlockAlign = 2
Buffer2.fxFormat.lAvgBytesPerSec = 2

SRATE
Buffer2.lFlags = 0
Buffer2.lBufferBytes = 2 DUR * SRATE
Sett dsToneBuffer = DS.CreateSoundBuffer (buffer2)

6 Lag en tone og skrive til dsToneBuffer:
Dim jeg
For i = 0 For å DUR * SRATE

sbuf(i) = 10000 * Sin(2 * PI * FREQ * i / SRATE)

Neste jeg
dsToneBuffer.WriteBuffer 0, 2

DUR SRATE, sbuf (0), DSBLOCK_DEFAULT

7 Skriv bufferdata til en WAV-fil:
DS.CreateSoundBufferToFile (App.Path & "\ my.wav", dsToneBuffer)