Sound mit DirectX SDK für VB

Teil 3: Sound mit DirectX SDK für VB

Das Abspielen einer Audiodatei mit der DirectX-Komponente DirectMusic ist ein mehrstufiger Prozess. Im Vorfeld benötigen Sie ein Ladeobjekt, welches die Audiodateien öffnen kann. Um es anzulegen, rufen Sie die Direct MusicLoaderCreate-Methode des DirectX8- Objekts auf und speichern den zurückgegebenen Objektverweis in einer Variablen vom Typ DirectMusic- Loader8:

Dim objDMLader As _ DirectMusicLoader8 Set objDMLader = objDX _ .DirectMusicLoaderCreate

Wenn Sie die Audiodateien nicht immer mit Pfadnamen angeben möchten, veranlassen Sie das Ladeobjekt per SetSearchDirectory- Methode dazu, den Standardordner zu verwenden. Dann können Sie sich damit begnügen, die dort gespeicherten Audiodateien allein per Dateinamen abzurufen. Das folgende Beispiel legt den Ordner der Visual-Basic- Anwendung (App.Path) als DirectMusic- Standardordner fest:

objDMLader.SetSearchDirectory _ App.Path & ""

Neben dem Lader benötigen Sie ein einzelnes Wiedergabeobjekt, das den Datenstrom zwischen der Audioquelle und dem Klang erzeugenden Software-Synthesizer kontrolliert. Die DirectMusic- PerformanceCreate-Methode des DirectX8- Objekts liefert Ihnen ein solches Objekt, das Sie in einer Variablen vom Typ DirectMusicPerformance8 speichern sollten:

Dim objDMWiedergabe As _ DirectMusicPerformance8 Set objDMWiedergabe = objDX _ .DirectMusicPerformanceCreate

Das Wiedergabeobjekt besitzt eine Methode namens InitAudio, mit der Sie die Wiedergabe einmalig initialisieren müssen. Dazu übergeben Sie der Methode das Fenster-Handle des Formulars (Me.hWnd), die Konstante DMUS_ AUDIOF_ALL sowie eine Variable vom Typ DMUS_AUDIOPARAMS, die Sie zuvor deklariert haben:

Dim dmParms As DMUS_AUDIOPARAMS objDMWiedergabe.InitAudio _ Me.hWnd, DMUS_AUDIOF_ALL, dmParms

Neben dem Wiedergabeobjekt ist mindestens ein Audiopfad erforderlich, der eine Art Ausgabekanal darstellt. Das folgende Beispiel erzeugt einen stereophonen, 64-stimmigen, aktiven Audiopfad und speichert den Verweis darauf in der Variablen objDMPfad vom Typ Direct- MusicAudioPath8:

Dim objDMPfad As _ DirectMusicAudioPath8 Set objDMPfad = objDMWiedergabe _ .CreateStandardAudioPath _ (DMUS_APATH_DYNAMIC_STEREO, _ 64, True)

Mehr zum Thema

Licht, Kälte und mehr

Im Winter fordern Lichtverhältnisse, Motivumgebungen und Kälte Kamera und Fotografen. Wir verraten, worauf Sie achten müssen.
FAQ zu IBAN, Überweisung & Co.

Die SEPA-Umstellung bringt IBAN, BIC und mehr für Überweisungen. Unser FAQ beantwortet alle wichtigen Fragen.
Kosten, Apps, Kündigung und Co.

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
BIOS-Tricks, Passivkühlung und mehr

Die Komponenten eines PCs erzeugen Hitze. Lüfter sorgen meist für eine lästige Geräuschkulisse. Mit unseren Tricks wird Ihr PC flüsterleise.
Solid State Disk

SSD-Tuning - was ist wahr, was ist falsch? Wir verraten, welche SSD-Mythen Sie vergessen können und welche Tipps wirklich helfen.