Signatur
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
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);
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);
// 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.