chore(frontend/MkMediaVideo): loop and autoplay silent videos (#12392)
This commit is contained in:

committed by
GitHub

parent
c9503da8f8
commit
d60f645d1d
9
packages/frontend/src/scripts/media-has-audio.ts
Normal file
9
packages/frontend/src/scripts/media-has-audio.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
export default async function hasAudio(media: HTMLMediaElement) {
|
||||
const cloned = media.cloneNode() as HTMLMediaElement;
|
||||
cloned.muted = (cloned as typeof cloned & Partial<HTMLVideoElement>).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;
|
||||
}
|
Reference in New Issue
Block a user