Files
bitvid/js/utils/autoplayPreference.js
T
2026-07-26 12:34:15 -04:00

28 lines
776 B
JavaScript

const FALLBACK_MUTE_DATASET_KEY = "bitvidAutoplayFallbackMute";
/**
* Mute playback after an unmuted autoplay rejection without recording the
* browser-policy fallback as a viewer preference.
*/
export function muteForAutoplayFallback(videoElement) {
if (!videoElement || videoElement.muted) {
return false;
}
if (videoElement.dataset) {
videoElement.dataset[FALLBACK_MUTE_DATASET_KEY] = "true";
}
videoElement.muted = true;
return true;
}
/** Consume the marker attached to the next fallback-generated volume change. */
export function consumeAutoplayFallbackMute(videoElement) {
if (videoElement?.dataset?.[FALLBACK_MUTE_DATASET_KEY] !== "true") {
return false;
}
delete videoElement.dataset[FALLBACK_MUTE_DATASET_KEY];
return true;
}