Signatur
Beschreibung
openal_context_process() setzt den angegebenen OpenAL-Kontext in den Verarbeitungszustand. Ein Kontext muss explizit verarbeitet werden, damit die Audiowiedergabe stattfinden kann. Diese Funktion ist das Gegenstück zu openal_context_suspend(), welche die Verarbeitung eines Kontexts anhält.
In der OpenAL-Architektur wird ein Kontext zunächst mit openal_context_create() erstellt und dann mit openal_context_current() als aktiv gesetzt. Damit Klänge tatsächlich wiedergegeben werden, muss der Kontext anschließend mit openal_context_process() in den Verarbeitungsmodus versetzt werden.
Diese Funktion ist besonders nützlich, wenn ein Kontext nach einem openal_context_suspend()-Aufruf wieder aktiviert werden soll, etwa nach einer Pause in der Audiowiedergabe oder beim Wechsel zwischen verschiedenen Audioszenen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $context Pflicht | resource | Ein OpenAL-Kontext-Resource-Handle, das zuvor mit openal_context_create() erstellt wurde. |
Rückgabewert
true bei Erfolg zurück, andernfalls false.Beispiele
Grundlegende Verwendung: Kontext erstellen und verarbeiten
<?php
// OpenAL-Gerät öffnen
$device = openal_device_open();
if (!$device) {
die('Konnte OpenAL-Gerät nicht öffnen.');
}
// Kontext erstellen
$context = openal_context_create($device);
if (!$context) {
die('Konnte OpenAL-Kontext nicht erstellen.');
}
// Kontext als aktuellen Kontext setzen
openal_context_current($context);
// Kontext in den Verarbeitungsmodus versetzen
if (openal_context_process($context)) {
echo 'Kontext wird verarbeitet – Audiowiedergabe ist aktiv.';
} else {
echo 'Fehler beim Verarbeiten des Kontexts.';
}
// Aufräumen
openal_context_destroy($context);
openal_device_close($device);
?>
Kontext nach einer Pause wieder aktivieren
<?php
$device = openal_device_open();
$context = openal_context_create($device);
openal_context_current($context);
openal_context_process($context);
// Audiowiedergabe läuft ...
// Wiedergabe pausieren
openal_context_suspend($context);
echo 'Kontext wurde angehalten.' . PHP_EOL;
// Etwas Zeit vergehen lassen (z. B. Ladevorgang)
sleep(1);
// Wiedergabe fortsetzen
if (openal_context_process($context)) {
echo 'Kontext wurde wieder aktiviert – Wiedergabe wird fortgesetzt.';
}
openal_context_destroy($context);
openal_device_close($device);
?>
// Wichtig · Fallstricke
Hinweis: Die OpenAL-Erweiterung für PHP (ext/openal) ist nicht standardmäßig in PHP enthalten und muss separat installiert werden. Sie ist zudem als experimentell eingestuft und wird in neueren PHP-Versionen kaum noch gepflegt. Für Produktionsumgebungen sollte eine alternative Audioausgabelösung in Betracht gezogen werden.
Es ist wichtig, den Kontext nach der Nutzung immer mit openal_context_destroy() freizugeben und das Gerät mit openal_device_close() zu schließen, um Ressourcenlecks zu vermeiden.