summaryrefslogtreecommitdiff
path: root/packages/frontend/src/scripts
diff options
context:
space:
mode:
authorAcid Chicken (硫酸鶏) <root@acid-chicken.com>2023-11-26 16:15:24 +0900
committerGitHub <noreply@github.com>2023-11-26 16:15:24 +0900
commitd60f645d1dc731d7ef6eff16081d2b5615412690 (patch)
tree76e655575fc1c64259be97a46f9f4c80fc27c7c7 /packages/frontend/src/scripts
parentサウンド設定に「サウンドを出力しない」と「Misskeyがア... (diff)
downloadsharkey-d60f645d1dc731d7ef6eff16081d2b5615412690.tar.gz
sharkey-d60f645d1dc731d7ef6eff16081d2b5615412690.tar.bz2
sharkey-d60f645d1dc731d7ef6eff16081d2b5615412690.zip
chore(frontend/MkMediaVideo): loop and autoplay silent videos (#12392)
Diffstat (limited to 'packages/frontend/src/scripts')
-rw-r--r--packages/frontend/src/scripts/media-has-audio.ts9
1 files changed, 9 insertions, 0 deletions
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<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;
+}