Signatur
Beschreibung
openal_source_rewind() setzt die Wiedergabeposition der angegebenen OpenAL-Audioquelle auf den Anfang zurück, ohne die Wiedergabe zu starten oder zu stoppen. Die Quelle wechselt dabei in den Zustand AL_INITIAL.
Diese Funktion ist nützlich, wenn ein Soundeffekt oder eine Musiksequenz erneut von Anfang an abgespielt werden soll, ohne eine neue Quelle erstellen zu müssen. Nach dem Zurücksetzen kann die Wiedergabe mit openal_source_play() neu gestartet werden.
Zu beachten ist, dass openal_source_rewind() Teil der PECL-Erweiterung openal ist, die separat installiert werden muss und auf der OpenAL-Bibliothek aufbaut. Die Funktion arbeitet mit Quellen-Ressourcen, die zuvor mit openal_source_create() erzeugt wurden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $source Pflicht | resource | Eine gültige OpenAL-Quellen-Ressource, wie sie von openal_source_create() zurückgegeben wird. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. ungültige Ressource).Beispiele
Audioquelle zurückspulen und erneut abspielen
<?php
// OpenAL-Gerät und Kontext initialisieren
$device = openal_device_open();
$context = openal_context_create($device);
openal_context_current($context);
// Puffer laden und Quelle erstellen
$buffer = openal_buffer_create();
openal_buffer_loadwav($buffer, 'sound.wav');
$source = openal_source_create();
openal_source_set($source, AL_BUFFER, $buffer);
// Audioquelle starten
openal_source_play($source);
sleep(2); // 2 Sekunden warten
// Quelle auf Anfang zurücksetzen
if (openal_source_rewind($source)) {
echo "Quelle wurde zurückgespult.\n";
// Erneut abspielen
openal_source_play($source);
} else {
echo "Fehler beim Zurückspulen.\n";
}
// Aufräumen
openal_source_destroy($source);
openal_buffer_destroy($buffer);
openal_context_destroy($context);
openal_device_close($device);
?>
Zustand der Quelle nach dem Zurückspulen prüfen
<?php
$device = openal_device_open();
$context = openal_context_create($device);
openal_context_current($context);
$buffer = openal_buffer_create();
openal_buffer_loadwav($buffer, 'effect.wav');
$source = openal_source_create();
openal_source_set($source, AL_BUFFER, $buffer);
openal_source_play($source);
// Quelle zurückspulen
openal_source_rewind($source);
// Zustand abfragen (AL_INITIAL = 4113)
$state = openal_source_get($source, AL_SOURCE_STATE);
echo "Quellen-Zustand nach Rewind: " . $state . "\n";
// AL_INITIAL hat den Wert 4113
?>
// Wichtig · Fallstricke
Hinweis zur Verfügbarkeit: openal_source_rewind() ist Teil der PECL-Erweiterung openal, die nicht standardmäßig in PHP enthalten ist. Sie muss separat über PECL installiert werden (pecl install openal) und erfordert die installierte OpenAL-Bibliothek auf dem System.
Die Funktion setzt den Zustand der Quelle auf AL_INITIAL zurück, was bedeutet, dass weder Wiedergabe noch Pause aktiv ist. Wird openal_source_rewind() während einer laufenden Wiedergabe aufgerufen, wird diese gestoppt und der Lesekopf an den Anfang gesetzt.
Seit PHP 8.0 ist die Erweiterung möglicherweise nicht mehr aktiv gepflegt; ein Einsatz in modernen PHP-Projekten sollte sorgfältig geprüft werden.