Start · Sprachen · PHP · Referenz · openal_source_rewind

openal_source_rewind

Funktion

Setzt die Wiedergabeposition einer OpenAL-Audioquelle auf den Anfang zurück.

seit PHP 5.0.0 Kategorie: misc

Signatur

openal_source_rewind(resource $source): bool

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

Typ
bool
Beschreibung
Gibt 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);
?>
Quelle wurde zurückgespult.

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
?>
Quellen-Zustand nach Rewind: 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.