alBufferData

Aus DGL Wiki
Wechseln zu: Navigation, Suche

alBufferData

Name

alBufferData - Füllt einen Puffer mit Audiodaten.

Delphi-Spezifikation

procedure alBufferData(buffer: TALuint; format: TALenum; data: Pointer; size: TALsizei, freq: TALsizei);


Parameter

buffer Name des zu füllenden Puffers
format Format der Audiodaten, welches eines der folgenden ist:

AL_FORMAT_MONO8
AL_FORMAT_MONO16
AL_FORMAT_STEREO8
AL_FORMAT_STEREO16

data Zeiger auf die Audiodaten
size Größe der Audiodaten in Bytes
freq Frequenz der Audiodaten


Beschreibung

Die Prozedur füllt einen Puffer mit Audiodaten. Alle vordefinierten Audioformate verstehen sich als PCM-Daten, jedoch kann alBufferData von Erweiterungen auch genutzt werden, um andere Datentypen in einen Puffer zu laden.
Später lassen sich dann bestimmte Eckdaten eines gefüllten Puffers mit Hilfe der Funktion alGetBuffer erfragen. Unter Verwendung des Parameters AL_BITS erhält man die Anzahl der Bits pro Sample für die Daten im Puffer, AL_CHANNELS liefert die Anzahl der Audiokanäle (1 steht dabei für Mono, 2 für Stereo), AL_FREQUENCY gibt die Anzahl der Samples pro Sekunde bzw. die Frequenz in Hertz (Hz) zurück und über AL_SIZE erfährt man die Größe der im Puffer gespeicherten Daten.


Hinweise

PCM-Daten im 8-bit-Format werden als vorzeichenlose Werte im Bereich von 0 bis 255 ausgedrückt, wobei 128 einem Ausgebelevel von null entspricht. PCM-Daten im 16-bit-Format werden als vorzeichenbehaftete Werte im Bereich von -32768 bis 32767 dargestellt, der Wert 0 entspricht dort einen Ausgabelevel von null. Stereodaten werden durch ein überlappendes Format dargestellt, der linke Audiokanal kommt dabei zuerst, dann der rechte. Danach kommt das nächste Sample für den linken Kanal, darauf das für den rechten Kanal und so weiter.


Fehlermeldungen

AL_OUT_OF_MEMORY wird generiert, falls nicht genug Speicher verfügbar ist, um den Buffer anzulegen.

AL_INVALID_VALUE wird generiert, wenn der Parameter size für das angegebene Format nicht gültig ist oder falls der Pointer data der NIL-Pointer ist.

AL_INVALID_ENUM wird generiert, sofern das angegebene Format nicht existiert.


Zugehörige Wertrückgaben

alGetBuffer mit den Tokens AL_BITS, AL_CHANNELS, AL_FREQUENCY oder AL_SIZE


Siehe auch

alGenBuffers, alGetBuffer

'