Signatur
Beschreibung
openal_listener_get gehört zur OpenAL-Erweiterung für PHP und ermöglicht das Auslesen von Eigenschaften des sogenannten Listeners – also der virtuellen Ohren bzw. des Hörers in einer 3D-Audioumgebung. Der Listener repräsentiert den Standpunkt des Benutzers im dreidimensionalen Raum und beeinflusst, wie Audioquellen wahrgenommen werden.
Mit dieser Funktion lassen sich Eigenschaften wie Position, Geschwindigkeit, Orientierung und Lautstärke des Listeners abfragen. Als Parameter wird eine der vordefinierten OpenAL-Konstanten übergeben, z. B. AL_POSITION, AL_VELOCITY, AL_ORIENTATION oder AL_GAIN.
Die Funktion ist nützlich, wenn man den aktuellen Zustand des Listeners zur Laufzeit überprüfen oder Änderungen validieren möchte, etwa nach einem Aufruf von openal_listener_set. Sie gehört zu einem niedrig-level Audio-API und ist daher vor allem in spezialisierten Anwendungen wie Spielen oder interaktiven Audioprogrammen relevant.
Hinweis: Die OpenAL-Erweiterung für PHP gilt als experimentell und ist in modernen PHP-Versionen selten verfügbar. Sie muss separat kompiliert und installiert werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $property Pflicht | int | Eine OpenAL-Konstante, die die abzufragende Listener-Eigenschaft bestimmt. Typische Werte sind AL_GAIN (Lautstärkefaktor), AL_POSITION (Position im 3D-Raum), AL_VELOCITY (Geschwindigkeitsvektor) oder AL_ORIENTATION (Ausrichtung des Listeners). |
Rückgabewert
float (z. B. bei AL_GAIN) oder ein array mit mehreren Koordinatenwerten (z. B. bei AL_POSITION oder AL_ORIENTATION) sein. Bei einem Fehler oder ungültigem Parameter wird false zurückgegeben.Beispiele
Lautstärkefaktor des Listeners auslesen
<?php
// OpenAL-Gerät und -Kontext initialisieren
$device = openal_device_open();
$context = openal_context_create($device);
openal_context_current($context);
// Standard-Gain (Lautstärke) des Listeners abrufen
$gain = openal_listener_get(AL_GAIN);
echo "Listener-Gain: " . $gain . PHP_EOL;
// Gain anpassen und erneut auslesen
openal_listener_set(AL_GAIN, 0.5);
$newGain = openal_listener_get(AL_GAIN);
echo "Neuer Listener-Gain: " . $newGain . PHP_EOL;
// Aufräumen
openal_context_destroy($context);
openal_device_close($device);
?>
Position des Listeners im 3D-Raum abfragen
<?php
// OpenAL-Gerät und -Kontext initialisieren
$device = openal_device_open();
$context = openal_context_create($device);
openal_context_current($context);
// Listener-Position setzen
openal_listener_set(AL_POSITION, [1.0, 2.0, 3.0]);
// Position auslesen
$position = openal_listener_get(AL_POSITION);
echo "Listener-Position: X={$position[0]}, Y={$position[1]}, Z={$position[2]}" . PHP_EOL;
// Aufräumen
openal_context_destroy($context);
openal_device_close($device);
?>
// Wichtig · Fallstricke
Experimentelle Erweiterung: Die OpenAL-Erweiterung für PHP ist als experimentell eingestuft. Verhalten, Verfügbarkeit und API können sich ohne Ankündigung ändern. In produktiven Umgebungen sollte ihre Verfügbarkeit vorab geprüft werden (extension_loaded('openal')).
Vor dem Aufruf von openal_listener_get muss ein gültiger OpenAL-Kontext mit openal_context_current aktiviert worden sein, andernfalls sind die Rückgabewerte undefiniert oder die Funktion schlägt fehl.
Die Erweiterung ist in Standard-PHP-Paketen meist nicht enthalten und muss manuell über PECL oder durch eigenes Kompilieren bereitgestellt werden.