Start · Sprachen · PHP · Referenz · openal_context_destroy

openal_context_destroy

Funktion

Zerstört einen OpenAL-Kontext und gibt die damit verbundenen Ressourcen frei.

Kategorie: misc

Signatur

openal_context_destroy(resource $context): bool

Beschreibung

openal_context_destroy zerstört einen zuvor mit openal_context_create erstellten OpenAL-Audiokontexts. Nach dem Aufruf ist die übergebene Ressource ungültig und darf nicht mehr verwendet werden.

OpenAL-Kontexte verwalten den Zustand der Audioausgabe für ein bestimmtes Gerät, einschließlich Listener-Eigenschaften und aktiver Sources. Das ordnungsgemäße Zerstören eines Kontexts ist wichtig, um Ressourcenlecks zu vermeiden, insbesondere wenn mehrere Kontexte auf einem Gerät erzeugt werden.

Vor dem Zerstören des Kontexts sollte sichergestellt werden, dass er nicht mehr der aktive Kontext ist. Dazu kann openal_context_current mit einem anderen Kontext oder null aufgerufen werden, um den Kontext vorher zu deaktivieren.

Parameter

Name Typ Default Beschreibung
$context Pflicht resource Eine gültige OpenAL-Kontext-Ressource, die zuvor mit openal_context_create erzeugt wurde.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn der Kontext erfolgreich zerstört wurde, andernfalls false.

Beispiele

Kontext erstellen und nach Verwendung zerstören

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

// Kontext erstellen
$context = openal_context_create($device);
if (!$context) {
    die('OpenAL-Kontext konnte nicht erstellt werden.');
}

// Kontext aktivieren
openal_context_current($context);

// ... Audio-Verarbeitung hier ...

// Kontext deaktivieren, bevor er zerstört wird
// (In der Praxis: openal_context_current mit NULL oder anderem Kontext)

// Kontext zerstören
$result = openal_context_destroy($context);
if ($result) {
    echo "Kontext erfolgreich zerstört.";
} else {
    echo "Fehler beim Zerstören des Kontexts.";
}

// Gerät schließen
openal_device_close($device);
Kontext erfolgreich zerstört.

Mehrere Kontexte verwalten und aufräumen

<?php
$device = openal_device_open();

// Zwei Kontexte für dasselbe Gerät erstellen
$context1 = openal_context_create($device);
$context2 = openal_context_create($device);

// Ersten Kontext aktivieren und verwenden
openal_context_current($context1);
// ... Arbeit mit context1 ...

// Zum zweiten Kontext wechseln
openal_context_current($context2);
// ... Arbeit mit context2 ...

// Aufräumen: Beide Kontexte zerstören
openal_context_destroy($context2);
openal_context_destroy($context1);

openal_device_close($device);
echo "Alle Kontexte zerstört und Gerät geschlossen.";
Alle Kontexte zerstört und Gerät geschlossen.

// Wichtig · Fallstricke

Wichtig: Wenn der zu zerstörende Kontext noch der aktuell aktive Kontext ist, kann dies zu undefiniertem Verhalten führen. Es wird empfohlen, den Kontext vor dem Zerstören mit openal_context_current zu deaktivieren.

Die OpenAL-Erweiterung für PHP (ext/openal) ist nicht standardmäßig in PHP enthalten und muss separat installiert werden. Sie basiert auf der OpenAL-Bibliothek und ist hauptsächlich für experimentelle oder spezielle Audio-Anwendungen gedacht.