Start · Sprachen · PHP · Referenz · openal_device_open

openal_device_open

Funktion

Öffnet ein OpenAL-Audiogerät und gibt eine Geräte-Ressource zurück, die als Grundlage für die weitere Audioverwaltung dient.

Kategorie: misc

Signatur

openal_device_open(string $device_desc = ''): resource|false

Beschreibung

openal_device_open() initialisiert die OpenAL-Audioschicht, indem es ein physisches oder virtuelles Audioausgabegerät öffnet. Das zurückgegebene Ressource-Handle wird für alle nachfolgenden OpenAL-Operationen benötigt, insbesondere für das Erzeugen eines Kontexts mit openal_context_create().

Der optionale Parameter device_desc erlaubt die Angabe eines bestimmten Gerätenamens. Wird er weggelassen oder als leerer String übergeben, wählt OpenAL automatisch das Standard-Audiogerät des Systems aus. Auf Desktop-Systemen ist dies in der Regel die Hauptsoundkarte oder ein konfiguriertes Standard-Ausgabegerät.

Die Funktion gehört zur OpenAL-Erweiterung für PHP (ext/openal), die vor ihrer Verwendung installiert und aktiviert sein muss. OpenAL eignet sich besonders für Anwendungen mit räumlichem 3D-Audio, etwa Spiele oder Simulationen, da es Positionierung, Entfernungsabschwächung und Doppler-Effekte von Klangquellen unterstützt.

Nach der Verwendung sollte das Gerät mit openal_device_close() wieder geschlossen werden, um Ressourcen freizugeben.

Parameter

Name Typ Default Beschreibung
$device_desc string '' Name des zu öffnenden Audiogeräts. Wird ein leerer String oder kein Wert übergeben, verwendet OpenAL das Standard-Ausgabegerät des Systems.

Rückgabewert

Typ
resource|false
Beschreibung
Gibt bei Erfolg eine OpenAL-Geräte-Ressource zurück, die für weitere Operationen wie das Erstellen eines Kontexts benötigt wird. Bei einem Fehler (z. B. Gerät nicht gefunden oder OpenAL nicht verfügbar) wird false zurückgegeben.

Beispiele

Standard-Audiogerät öffnen und Kontext erstellen

<?php
// Standard-Audiogerät öffnen
$device = openal_device_open();

if ($device === false) {
    die('Konnte kein OpenAL-Audiogerät öffnen.');
}

// Audiokontext erstellen
$context = openal_context_create($device);
openal_context_current($context);

echo 'OpenAL-Gerät und Kontext erfolgreich initialisiert.' . PHP_EOL;

// ... Audiooperationen ...

// Aufräumen
openal_context_destroy($context);
openal_device_close($device);
OpenAL-Gerät und Kontext erfolgreich initialisiert.

Bestimmtes Audiogerät über Namen öffnen

<?php
// Explizites Gerät angeben (betriebssystemabhängig)
$deviceName = 'Generic Hardware';
$device = openal_device_open($deviceName);

if ($device === false) {
    echo 'Gerät "' . $deviceName . '" nicht gefunden, versuche Standard-Gerät...' . PHP_EOL;
    $device = openal_device_open();
}

if ($device === false) {
    die('Kein OpenAL-Audiogerät verfügbar.');
}

echo 'Gerät erfolgreich geöffnet.' . PHP_EOL;

openal_device_close($device);
Gerät erfolgreich geöffnet.

// Wichtig · Fallstricke

Erweiterung erforderlich: Die OpenAL-Erweiterung für PHP (ext/openal) ist nicht im Standard-PHP enthalten und muss separat installiert werden (z. B. über PECL). Prüfen Sie die Verfügbarkeit mit extension_loaded('openal').

Ressourcenverwaltung: Jedes geöffnete Gerät belegt Systemressourcen. Schließen Sie das Gerät nach der Verwendung stets mit openal_device_close(), um Speicherlecks zu vermeiden.

Plattformabhängigkeit: Die verfügbaren Gerätenamen sind stark plattform- und treiberabhängig. Unter Linux werden häufig ALSA- oder PulseAudio-Geräte verwendet, unter Windows DirectSound- oder WASAPI-Geräte. Das Weglassen des Parameters und die Verwendung des Standard-Geräts ist die portabelste Lösung.