Start · Sprachen · PHP · Referenz · openal_context_process

openal_context_process

Funktion

Verarbeitet den angegebenen OpenAL-Kontext und ermöglicht damit die Audioausgabe.

Kategorie: misc

Signatur

openal_context_process(resource $context): bool

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

Typ
bool
Beschreibung
Gibt 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 wird verarbeitet – Audiowiedergabe ist aktiv.

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);
?>
Kontext wurde angehalten. Kontext wurde wieder aktiviert – Wiedergabe wird fortgesetzt.

// 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.