Signatur
Beschreibung
Die Eigenschaft defaultPlaybackRate eines <audio>- oder <video>-Elements legt fest, mit welcher Geschwindigkeit das Medium standardmäßig abgespielt wird. 1.0 entspricht normaler Geschwindigkeit, 2.0 doppelter und 0.5 halber Geschwindigkeit.
Wichtig ist der Unterschied zu playbackRate: Eine Änderung von defaultPlaybackRate wirkt sich nicht sofort auf die laufende Wiedergabe aus. Der Wert wird erst übernommen, wenn der Browser das Medium neu lädt (z. B. durch load() oder eine neue src). Dabei wird playbackRate auf den Wert von defaultPlaybackRate zurückgesetzt. Die aktuelle Geschwindigkeit ändert man dagegen mit playbackRate.
Typische Anwendung: Playlists oder Podcast-Player, in denen die Wunschgeschwindigkeit des Nutzers für jede neue Episode erhalten bleiben soll. Eine Änderung des Werts löst das Ereignis ratechange aus.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $wert | number | 1.0 | Beim Setzen: gewünschte Standardgeschwindigkeit als Faktor (1.0 = normal). Negative Werte sind laut Spezifikation für Rückwärtswiedergabe gedacht, werden aber von den meisten Browsern nicht unterstützt. |
Rückgabewert
1.0).Beispiele
Standardgeschwindigkeit lesen und setzen
const video = document.querySelector('video');
console.log(video.defaultPlaybackRate); // Vorgabewert
video.defaultPlaybackRate = 1.5;
console.log(video.defaultPlaybackRate);
console.log(video.playbackRate); // bleibt bis zum nächsten load() unverändert
Nutzergeschwindigkeit in einer Playlist beibehalten
const audio = document.querySelector('audio');
const playlist = ['folge1.mp3', 'folge2.mp3', 'folge3.mp3'];
let index = 0;
// Gespeicherte Nutzervorliebe laden
const gespeichert = Number(localStorage.getItem('speed')) || 1;
audio.defaultPlaybackRate = gespeichert;
const spieleFolge = async (i) => {
audio.src = playlist[i]; // Neue Quelle -> playbackRate = defaultPlaybackRate
await audio.play();
console.log(`Folge ${i + 1} mit ${audio.playbackRate}x`);
};
audio.addEventListener('ended', () => {
index = (index + 1) % playlist.length;
spieleFolge(index);
});
spieleFolge(index);
Geschwindigkeits-Auswahl mit sofortiger und dauerhafter Wirkung
const video = document.querySelector('video');
const auswahl = document.querySelector('#speed'); // <select> mit 0.5, 1, 1.5, 2
auswahl.addEventListener('change', () => {
const rate = Number(auswahl.value);
video.playbackRate = rate; // wirkt sofort
video.defaultPlaybackRate = rate; // bleibt nach Quellwechsel erhalten
localStorage.setItem('speed', String(rate));
});
video.addEventListener('ratechange', () => {
console.log('Aktuell:', video.playbackRate, 'Standard:', video.defaultPlaybackRate);
});
// Wichtig · Fallstricke
- Häufigster Fehler:
defaultPlaybackRateändert die laufende Wiedergabe nicht. Für eine sofortige Änderung zusätzlichplaybackRatesetzen. - Browser schalten den Ton bei sehr hohen oder sehr niedrigen Werten stumm (Firefox und Chrome etwa außerhalb von 0,25–4 bzw. 0,0625–16). Werte außerhalb des unterstützten Bereichs können eine
NotSupportedError-DOMExceptionauslösen. - Negative Werte (Rückwärtswiedergabe) werden praktisch von keinem Browser unterstützt.
- Die Tonhöhe bleibt standardmäßig erhalten; steuerbar über
preservesPitch. - Kompatibilität: Wird von allen modernen Browsern unterstützt; das Verhalten beim Zurücksetzen durch
load()kann sich in Details unterscheiden.