From d60f645d1dc731d7ef6eff16081d2b5615412690 Mon Sep 17 00:00:00 2001 From: "Acid Chicken (硫酸鶏)" Date: Sun, 26 Nov 2023 16:15:24 +0900 Subject: chore(frontend/MkMediaVideo): loop and autoplay silent videos (#12392) --- packages/frontend/src/scripts/media-has-audio.ts | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 packages/frontend/src/scripts/media-has-audio.ts (limited to 'packages/frontend/src/scripts') diff --git a/packages/frontend/src/scripts/media-has-audio.ts b/packages/frontend/src/scripts/media-has-audio.ts new file mode 100644 index 0000000000..3421a38a76 --- /dev/null +++ b/packages/frontend/src/scripts/media-has-audio.ts @@ -0,0 +1,9 @@ +export default async function hasAudio(media: HTMLMediaElement) { + const cloned = media.cloneNode() as HTMLMediaElement; + cloned.muted = (cloned as typeof cloned & Partial).playsInline = true; + cloned.play(); + await new Promise((resolve) => cloned.addEventListener('playing', resolve)); + const result = !!(cloned as any).audioTracks?.length || (cloned as any).mozHasAudio || !!(cloned as any).webkitAudioDecodedByteCount; + cloned.remove(); + return result; +} -- cgit v1.2.3-freya