Hallo allerseits!
Ich möchte Euch SoundLib 3 beta kurz vorstellen (Danke an Daniel für die freundliche Genehmigung).
SoundLib 3 eignet sich zum Mischen und Wiedergeben verschiedener Sound- und Musikformate. Im neuen Release
stand die Entwicklung der Mehrkanal- und 3D-Fähigkeiten im Vordergrund, ebenso wie die Konsolidierung
der Wiedergabe mit DirectSound und dem Wave Mapper. Als besonderes Feature gesellt sich das
nahtlose Umschalten verschiedener Soundkarten, Interfaces und Ausgabeformate hinzu -- eine
Anwendung muss bei einem Wechsel nicht neu gestartet werden.
Zielgruppe des Librarys sind vorrangig Spiele, dennoch eignet sich SoundLib auch für andere
Multimedia-Applikationen. Die Einfachheit des Interfaces und automatische Initialisierungen
erlauben einen schnellen Einstieg. Wer mehr möchte, kann dennoch zu erweiterten Funktionen greifen.
Das Library ist kostenlos für nichtkommerzielle Nutzung; weitere Details lassen sich auf der
verlinkten Seite entnehmen.
Unterstützte Dateiformate: WAV, OGG, MOD/WOW/NST, S3M, XM
Unterstützte Plattformen: Delphi 5+, MSVC++, (Lazarus/Free Pascal kompilieren, aber ungetestet)
Link:
http://www.crossfire-designs.de/soundlib
Als Beispiel ein kleines Programm zum Abspielen von Audiodateien. Die Fehlerbehandlung wurde weitestgehend
entfernt, um zu zeigen, wie wenig Code nur notwendig ist, um zu einem Ergebnis zu kommen. Im Anhang
befindet sich das Projekt mit Fehlerbehandlung.
Delphi-Quellcode:
program playfile;
{$APPTYPE CONSOLE}
uses
soundlib3;
var
driver : tSoundInterface;
sound : tSound;
wave : tSoundStream;
begin
// Initialize sound interface
driver := tSoundInterface.create; // Selects best sound interface automatically
// Initialize playback
driver.startplayback(0,snd_auto,0,0,0); // Everything will be automatically set
// Create sound collection layer
sound := tSound.create(driver,1);
// Try to load wave file to sound collection
wave := tSoundFile.create(sound,'F:\cd\03_downtown.wav');
// Put out some information
writeln('Initialized output: '+driver.getDeviceInfo(driver.getCurrentDevice).deviceName);
// Start playback and wait for user interruption
wave.play;
readln;
// Deinitialize everything
wave.free;
sound.free;
driver.stopplayback;
driver.free;
end.
Weitere Delphi-Beispiele sind im Release-
Package enthalten. So auch ein 3D-Beispielprogramm mit
Doppler-Effekt (funktioniert am besten auf Audiosystemen mit mehr als 2 Boxen)
Viel Spaß beim Ausprobieren!
Übrigens lese ich natürlich auch im Forum, falls Ihr Fehler findet: ich sammle sie
Grüße,
Stefan