Start · Sprachen · JavaScript · Referenz · HTMLMediaElement.defaultPlaybackRate

HTMLMediaElement.defaultPlaybackRate

Eigenschaft

Liest oder setzt die Standard-Wiedergabegeschwindigkeit eines Medienelements, die nach dem Laden der Quelle als <code>playbackRate</code> übernommen wird.

seit JavaScript Baseline: alle modernen Browser Kategorie: webapi

Signatur

HTMLMediaElement.defaultPlaybackRate

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

Typ
number
Beschreibung
Die aktuell eingestellte Standard-Wiedergabegeschwindigkeit als Gleitkommazahl (Vorgabe 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
1 1.5 1

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);
Folge 1 mit 1.25x (bei gespeichertem Wert 1.25)

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);
});
Aktuell: 2 Standard: 2

// Wichtig · Fallstricke

  • Häufigster Fehler: defaultPlaybackRate ändert die laufende Wiedergabe nicht. Für eine sofortige Änderung zusätzlich playbackRate setzen.
  • 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-DOMException auslö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.