From b01fd18d2ab886b7405f8452a3bfb12824105b1c Mon Sep 17 00:00:00 2001 From: loicfrance Date: Tue, 6 Aug 2024 23:00:45 +0200 Subject: [PATCH] use `HTMLAudioElement.canPlayType()` instead of `MediaSource.isTypeSupported()` --- src/translation/assets.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/translation/assets.ts b/src/translation/assets.ts index 9377dcc..8642c48 100644 --- a/src/translation/assets.ts +++ b/src/translation/assets.ts @@ -58,15 +58,14 @@ function audioPath(formats: string|string[], num: number|string) { else if (formats.length == 1) format = (formats as string[])[0] else { + const audio = document.createElement('audio') format = (formats as string[]).find((f)=> { const [_, ext] = splitLast(f, '.') switch (ext) { case null : return true case 'mp3' : return true // consider all browser can play mp3 case 'wav' : return true - case 'ogg' : return MediaSource.isTypeSupported('audio/ogg') - case 'aac' : return MediaSource.isTypeSupported('audio/mp4') - case 'opus' : return MediaSource.isTypeSupported('video/mp4; codecs="Opus"') + case 'opus' : return audio.canPlayType('audio/webm; codecs="opus"') == "probably" default : return true } }) ?? formats[formats.length-1]