Start · Sprachen · PHP · Referenz · openal_context_current

openal_context_current

Funktion

Macht den angegebenen OpenAL-Kontext zum aktuellen aktiven Kontext für die Audioausgabe.

Kategorie: misc

Signatur

openal_context_current(resource $context): bool

Beschreibung

openal_context_current() setzt den übergebenen OpenAL-Kontext als den aktuell aktiven Kontext. Alle nachfolgenden OpenAL-Operationen, die einen aktiven Kontext voraussetzen, beziehen sich dann auf diesen Kontext.

In OpenAL kann immer nur ein Kontext zur gleichen Zeit aktiv sein. Wenn mehrere Kontexte existieren (z. B. für unterschiedliche Audiogeräte), muss vor dem Abspielen oder Konfigurieren von Quellen und Puffern der gewünschte Kontext mit dieser Funktion aktiviert werden.

Die Funktion wird typischerweise nach dem Erstellen eines Kontexts mit openal_context_create() aufgerufen, um diesen Kontext zu aktivieren und anschließend Audioquellen und -puffer darauf zuzugreifen.

Parameter

Name Typ Default Beschreibung
$context Pflicht resource Ein gültiges OpenAL-Kontext-Resource-Handle, das zuvor mit openal_context_create() erstellt wurde.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn der Kontext erfolgreich als aktueller Kontext gesetzt wurde, andernfalls false.

Beispiele

OpenAL-Kontext erstellen und aktivieren

<?php
// Audiogerät öffnen
$device = openal_device_open();
if ($device === false) {
    die('Audiogerät konnte nicht geöffnet werden.');
}

// Kontext für das Gerät erstellen
$context = openal_context_create($device);
if ($context === false) {
    die('Kontext konnte nicht erstellt werden.');
}

// Kontext als aktuellen Kontext setzen
if (openal_context_current($context)) {
    echo "Kontext erfolgreich aktiviert.\n";
} else {
    echo "Kontext konnte nicht aktiviert werden.\n";
}

// Hier können nun OpenAL-Quellen und Puffer verwaltet werden

// Aufräumen
openal_context_destroy($context);
openal_device_close($device);
?>
Kontext erfolgreich aktiviert.

Zwischen mehreren Kontexten wechseln

<?php
$device = openal_device_open();

// Zwei Kontexte erstellen
$context1 = openal_context_create($device);
$context2 = openal_context_create($device);

// Ersten Kontext aktivieren und nutzen
openal_context_current($context1);
echo "Kontext 1 ist jetzt aktiv.\n";
// ... Audioquellen in Kontext 1 konfigurieren ...

// Zum zweiten Kontext wechseln
openal_context_current($context2);
echo "Kontext 2 ist jetzt aktiv.\n";
// ... Audioquellen in Kontext 2 konfigurieren ...

// Aufräumen
openal_context_destroy($context1);
openal_context_destroy($context2);
openal_device_close($device);
?>
Kontext 1 ist jetzt aktiv. Kontext 2 ist jetzt aktiv.

// Wichtig · Fallstricke

Hinweis: Die OpenAL-Erweiterung für PHP ist nicht standardmäßig in PHP enthalten und muss als PECL-Erweiterung (pecl/openal) separat installiert werden. Sie ist zudem als experimentell eingestuft und wird nicht mehr aktiv gepflegt.

Da immer nur ein Kontext gleichzeitig aktiv sein kann, ist beim Wechseln zwischen Kontexten darauf zu achten, dass alle laufenden Operationen im vorherigen Kontext korrekt abgeschlossen werden, bevor ein neuer Kontext aktiviert wird.