Entwickler-Ecke

Multimedia / Grafik - Vorbisfiles per DirectSound ausgeben


Schugge - Fr 14.10.05 08:53
Titel: Vorbisfiles per DirectSound ausgeben
Hallo Leute,

ich nutze IDirectSoundBuffer8-Variablen (DirectSound-Paket), um Wave-Dateien aus dem Speicher abzuspielen. Das eignet sich wunderbar für Soundeffekte, da diese nicht allzu viel Speicherplatz bedürfen. Bei der Hintergrundmusik sieht das leider etwas anders aus. Sie sollte komprimiert vorliegen.
Hierfür will ich das Ogg/Vorbis-Format benutzen. Um meinen bisherigen Code nicht verwerfen zu müssen, will ich das Vorbisfile dekodieren und einer meiner IDirectSoundBuffer8-Variable zuweisen.
Mit Hilfe der libvorbis.dll habe ich leider keinen vernüftigen Ansatz finden können. Und Lösungen wie fmod o.ä. will ich wegen o.g. Gründen umgehen.

Hat hiermit schon jemand Erfahrungen sammeln können?

Schönen Gruß,
Schugge


digi_c - Fr 14.10.05 09:18

Hab nicht so viel Erfahrung damit aber ich schätze die Suche in: Delphi-Forum, Delphi-Library BASS DLL ermöglicht das relativ einfach.


Schugge - Fr 14.10.05 10:31

Hallo digi_c,

danke für die Antwort. 'fmod' und 'bass' sind Pakete, die ich nicht nutzen wollte. Die bieten komplett-Lösungen an. Ich hätte gerne weitestgehend Eingriff in den Code.
Ist es denn sehr umständlich Vorbisfiles zu dekodieren, bzw ins Wave-Format zu konvertieren, und mittels mmsystem einzubinden?
Ich habe Code gefunden, welche Vorbis zu RAW konvertiert, was mir allerdings nicht wirklich weiterhalf. Oder ist das schon "der" Ansatz?
Ich steh da leider etwas im Wald..


digi_c - Fr 14.10.05 11:39

Hmm also die Seite für OOG ist http://xiph.org/
Ich denke es gibt eine Möglichkeit mit hilfe dieser/einer DLL einen WaveAutioStream zu erzeugen und den dann auszugeben(ich glaube DirectX ist dafür geeignet). Da habe ich aber keine Details zu wie man das genau macht.


Schugge - Mo 17.10.05 08:45

Schade, genau so eine DLL bzw Funktion suche ich, kann sie aber nicht finden.


Schugge - Di 18.10.05 13:51

gefunden: http://www.jadds.de/directx/directx.php?directory=directsound

Hier findet man den "Ogg Vorbis File Streamer". Nur noch die richtige vorbisFile.dll korrekt einbinden und loslegen. Eine falsche Version der DLL gab bei mir Programmabstürze.


Und vielen Dank für die Mühe nochmal an digi_c!