Wave-Daten aus dem Puffer in VB6 erstellen

October 24

Wave-Daten aus dem Puffer in VB6 erstellen

DirectX können Sie in VB6 um Audio, Video und Grafiken Windows-Anwendungen zu erstellen. DirectX SDK ist kostenlos von der Microsoft Website. Die DirectSound ist das wichtigste audio-Gerät-Objekt. Es kann für Sound-Effekte in Spielen verwendet werden und es kann mehrere Töne gleichzeitig behandeln. Steuern Sie das audio-System durch DirectSound z. B. Schwenken und Volumen. In VB6 können Sie ein Projekt zum Lesen von Pufferdaten in eine WAV-Datei über die DirectX-Objekte erstellen.

Anweisungen

1 Klicken Sie auf "Start", "Alle Programme" und "Visual Basic" VB6 zu öffnen. Klicken Sie auf "Datei" und "Neu", um ein neues Projekt zu erstellen. Geben Sie einen Namen für das Projekt. Geben Sie einen Speicherort für die Projektdateien.

2 Klicken Sie auf "Projekt" und "Referenzen" um DirectX Referenz für das Projekt hinzuzufügen. Kreuzen Sie "DirectX 8 für Visual Basic Type Library" auf der Schnittstelle "Informationsquellen". Klicken Sie auf "OK".

3 Definieren Sie Variablen für das Projekt. Fügen Sie den folgenden Code hinzu die Form1.vb:Dim Dx neue DirectX8Dim ds als DirectSound8Dim buffer1 als DirectSoundSecondaryBuffer8Dim buffer2 als DSBUFFERDESC

4 Initialisieren von DirectSound per Code:Legen Sie Dx = neue DirectX8Legen Sie ds = Dx. DirectSoundCreate("")

5 Erstellen Sie einen Puffer per Code:Buffer2.fxFormat.nFormatTag = WAVE_FORMAT_PCMBuffer2.fxFormat.nSize = 0Buffer2.fxFormat.lExtra = 0Buffer2.fxFormat.nChannels = 1Buffer2.fxFormat.lSamplesPerSec = SRATEBuffer2.fxFormat.nBitsPerSample = 16Buffer2.fxFormat.nBlockAlign = 2Buffer2.fxFormat.lAvgBytesPerSec = 2 SRATEBuffer2.lFlags = 0Buffer2.lBufferBytes = 2 DUR * SRATESet DsToneBuffer = DS. CreateSoundBuffer(buffer2)

6 Erstellen Sie einen Ton und schreiben Sie an DsToneBuffer:Dim iFür i = 0 To DUR * SRATE

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

Nächsten ichdsToneBuffer.WriteBuffer 0, 2 DUR SRATE, sbuf(0), DSBLOCK_DEFAULT

7 Schreiben Sie die Pufferdaten in eine WAV-Datei:DS. CreateSoundBufferToFile (App.Path & "\my.wav", DsToneBuffer)