Signatur
Beschreibung
Die Eigenschaft disableRemotePlayback spiegelt das HTML-Attribut disableremoteplayback wider. Steht sie auf true, darf der Browser für dieses Medienelement keine Fernwiedergabe anbieten. Damit fallen auch die eingebauten Bedienelemente weg, etwa die AirPlay-Schaltfläche in Safari oder die Cast-Schaltfläche in Chrome.
Die Eigenschaft gehört zur Remote Playback API. Setzen Sie sie, wenn Inhalte nicht auf externe Geräte gestreamt werden sollen. Typische Gründe sind Lizenzbeschränkungen, DRM-geschützte Streams, die das Zielgerät nicht abspielen kann, oder ein eigener Player, der Fernwiedergabe selbst über HTMLMediaElement.remote steuert.
Setzen Sie den Wert auf true, während schon eine Fernwiedergabe läuft, wird die Verbindung getrennt: remote.state wechselt zu "disconnected" und die Wiedergabe geht lokal weiter. Aufrufe wie remote.watchAvailability() oder remote.prompt() werden dann mit einer InvalidStateError-DOMException abgelehnt.
Rückgabewert
true, wenn Fernwiedergabe deaktiviert ist, sonst false (Standardwert). Der Wert ist les- und schreibbar.Beispiele
Fernwiedergabe per JavaScript deaktivieren
const video = document.querySelector('video');
// AirPlay-/Cast-Schaltfläche ausblenden und Fernwiedergabe verbieten
video.disableRemotePlayback = true;
console.log(video.disableRemotePlayback);
console.log(video.hasAttribute('disableremoteplayback'));
Deklarativ im HTML und Funktionsprüfung
// HTML: <video src="film.mp4" controls disableremoteplayback></video>
const video = document.querySelector('video');
if ('disableRemotePlayback' in HTMLMediaElement.prototype) {
console.log('Fernwiedergabe deaktiviert:', video.disableRemotePlayback);
} else {
console.log('Remote Playback API wird nicht unterstützt');
}
Fernwiedergabe nur für geschützte Inhalte sperren
const video = document.querySelector('#player');
const loadMedia = ({ url, drmProtected }) => {
// Geschützte Streams nicht auf externe Geräte senden
video.disableRemotePlayback = drmProtected;
video.src = url;
};
loadMedia({ url: '/media/trailer.mp4', drmProtected: false });
console.log(video.disableRemotePlayback);
loadMedia({ url: '/media/premium.mp4', drmProtected: true });
console.log(video.disableRemotePlayback);
// Versuch, trotzdem einen Geräte-Dialog zu öffnen
video.remote?.prompt().catch((err) => console.log(err.name));
// Wichtig · Fallstricke
- Browser-Unterstützung: Safari (macOS und iOS) und Chromium-Browser unterstützen die Eigenschaft. In Firefox ist sie nur hinter dem Flag
media.remoteplayback.enabledverfügbar. Prüfen Sie die Unterstützung vorher mit'disableRemotePlayback' in HTMLMediaElement.prototype. - In älteren Safari-Versionen gibt es stattdessen das herstellerspezifische Attribut
x-webkit-airplay="deny". Setzen Sie für eine breite Abdeckung beide Varianten. - Kein Schutz vor Mitschnitt: Die Eigenschaft blendet nur die Fernwiedergabe im Browser aus. Bildschirmspiegelung auf Betriebssystemebene oder Mitschnitte verhindert sie nicht. Wirksamen Inhaltsschutz bieten nur DRM-Lösungen (Encrypted Media Extensions).
- Setzen Sie den Wert während einer laufenden Fernwiedergabe auf
true, bricht die Verbindung sofort ab. Warnen Sie Nutzer gegebenenfalls vorher. - Die Eigenschaft ist ein boolesches Attribut. Auch
disableremoteplayback="false"im HTML deaktiviert die Fernwiedergabe. Zum Wieder-Aktivieren müssen Sie das Attribut entfernen oder die Eigenschaft auffalsesetzen.