Signatur
Beschreibung
openal_buffer_get() liest eine bestimmte Eigenschaft eines OpenAL-Puffers aus, der zuvor mit openal_buffer_create() erzeugt wurde. OpenAL-Puffer sind Speicherbereiche, in denen Audiodaten für die Wiedergabe gehalten werden.
Als Eigenschaft ($property) werden die OpenAL-Konstanten verwendet, die Metainformationen zum Puffer beschreiben — etwa die Frequenz, die Bittiefe, die Anzahl der Kanäle oder die Größe der gespeicherten Daten. Diese Informationen sind nützlich, um Audiodaten zu validieren oder Wiedergabeparameter korrekt zu setzen.
Die Funktion ist Teil der OpenAL-Erweiterung für PHP, die 3D-Audio-Ausgabe über die OpenAL-Bibliothek ermöglicht. Sie ist vor allem in experimentellen Audio- oder Spielprojekten auf Basis von PHP sinnvoll.
AL_FREQUENCY– Abtastrate des Puffers in HzAL_BITS– Bittiefe (z. B. 8 oder 16)AL_CHANNELS– Anzahl der Audiokanäle (1 = Mono, 2 = Stereo)AL_SIZE– Größe der im Puffer gespeicherten Daten in Bytes
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $buffer Pflicht | resource | Eine gültige OpenAL-Puffer-Ressource, die zuvor mit openal_buffer_create() erzeugt und mit openal_buffer_data() befüllt wurde. |
|
| $property Pflicht | int | Eine der OpenAL-Konstanten zur Puffereigenschaft: AL_FREQUENCY, AL_BITS, AL_CHANNELS oder AL_SIZE. |
Rückgabewert
int), oder false bei einem Fehler (z. B. ungültige Ressource oder unbekannte Eigenschaft).Beispiele
Puffereigenschaften nach dem Laden einer WAV-Datei ausgeben
<?php
// OpenAL-Gerät und Kontext öffnen
$device = openal_device_open();
$context = openal_context_create($device);
openal_context_current($context);
// Puffer erstellen und mit PCM-Daten füllen
$buffer = openal_buffer_create();
$pcmData = file_get_contents('sound.raw'); // Rohe 16-Bit Mono PCM-Daten
openal_buffer_data($buffer, AL_FORMAT_MONO16, $pcmData, 44100);
// Puffereigenschaften abfragen
$frequency = openal_buffer_get($buffer, AL_FREQUENCY);
$bits = openal_buffer_get($buffer, AL_BITS);
$channels = openal_buffer_get($buffer, AL_CHANNELS);
$size = openal_buffer_get($buffer, AL_SIZE);
echo "Frequenz: {$frequency} Hz\n";
echo "Bittiefe: {$bits} Bit\n";
echo "Kanäle: {$channels}\n";
echo "Größe: {$size} Bytes\n";
// Aufräumen
openal_buffer_destroy($buffer);
openal_context_destroy($context);
openal_device_close($device);
?>
Überprüfen ob ein Puffer Stereo-Audio enthält
<?php
$device = openal_device_open();
$context = openal_context_create($device);
openal_context_current($context);
$buffer = openal_buffer_create();
// Stereo-PCM-Daten laden
$pcmData = file_get_contents('stereo_sound.raw');
openal_buffer_data($buffer, AL_FORMAT_STEREO16, $pcmData, 44100);
$channels = openal_buffer_get($buffer, AL_CHANNELS);
if ($channels === 2) {
echo "Der Puffer enthält Stereo-Audio.\n";
} elseif ($channels === 1) {
echo "Der Puffer enthält Mono-Audio.\n";
} else {
echo "Unbekannte Kanalanzahl: {$channels}\n";
}
openal_buffer_destroy($buffer);
openal_context_destroy($context);
openal_device_close($device);
?>
// Wichtig · Fallstricke
Hinweis zur Verfügbarkeit: Die OpenAL-Erweiterung für PHP ist experimentell und nicht standardmäßig aktiviert. Sie muss beim Kompilieren von PHP mit --with-openal eingebunden werden und erfordert die installierte OpenAL-Bibliothek auf dem System.
Vorsicht: Das Abfragen von Eigenschaften eines noch nicht mit openal_buffer_data() befüllten Puffers kann zu undefinierten Ergebnissen oder false als Rückgabewert führen. Der Rückgabewert sollte daher stets mit === false auf Fehler geprüft werden.
Diese Erweiterung wird in modernen PHP-Versionen kaum noch genutzt und ist in vielen Distributions-Paketen nicht enthalten. Für produktiven Audioeinsatz empfehlen sich externe Bibliotheken oder Lösungen über CLI-Programme.