Fix mute pausing videos

This commit is contained in:
2025-12-10 16:38:47 +01:00
parent 519ebbaaff
commit d01780c563
4 changed files with 35 additions and 11 deletions

View File

@@ -302,8 +302,9 @@ body {
.admin-identity {
display: flex;
gap: 14px;
align-items: center;
gap: 4px;
align-items: flex-start;
flex-direction: column;
}
.header-actions.tight {

View File

@@ -961,6 +961,7 @@ function applyMediaSettings(element, asset) {
}
const nextSpeed = asset.speed ?? 1;
const effectiveSpeed = Math.max(nextSpeed, 0.01);
const wasMuted = element.muted;
if (element.playbackRate !== effectiveSpeed) {
element.playbackRate = effectiveSpeed;
}
@@ -968,7 +969,19 @@ function applyMediaSettings(element, asset) {
if (element.muted !== shouldMute) {
element.muted = shouldMute;
}
element.pause();
if (nextSpeed === 0) {
element.pause();
return;
}
const playPromise = element.play();
if (playPromise?.catch) {
playPromise.catch(() => {
if (!shouldMute && wasMuted) {
element.muted = true;
element.play().catch(() => {});
}
});
}
}
function renderAssetList() {

View File

@@ -670,6 +670,7 @@ function applyMediaSettings(element, asset) {
}
const nextSpeed = asset.speed ?? 1;
const effectiveSpeed = Math.max(nextSpeed, 0.01);
const wasMuted = element.muted;
if (element.playbackRate !== effectiveSpeed) {
element.playbackRate = effectiveSpeed;
}
@@ -679,8 +680,16 @@ function applyMediaSettings(element, asset) {
}
if (nextSpeed === 0) {
element.pause();
} else if (element.paused) {
element.play().catch(() => {});
} else {
const playPromise = element.play();
if (playPromise?.catch) {
playPromise.catch(() => {
if (!shouldMute && wasMuted) {
element.muted = true;
element.play().catch(() => {});
}
});
}
}
}