diff --git a/src/renderer/features/player/components/audio-players.tsx b/src/renderer/features/player/components/audio-players.tsx index 4cde0e5ed..288556afd 100644 --- a/src/renderer/features/player/components/audio-players.tsx +++ b/src/renderer/features/player/components/audio-players.tsx @@ -40,17 +40,28 @@ import { PlayerType } from '/@/shared/types/types'; const CODEC_PROBES = [ { codec: 'mp3', container: 'mp3', mime: 'audio/mpeg' }, + { codec: 'aac', container: 'mp4', mime: 'audio/mp4; codecs="mp4a.40.2"' }, + { codec: 'aac', container: 'aac', mime: 'audio/aac' }, + { codec: 'aac', container: 'mp4', mime: 'audio/x-m4a' }, + { codec: 'opus', container: 'ogg', mime: 'audio/ogg; codecs="opus"' }, + { codec: 'opus', container: 'webm', mime: 'audio/webm; codecs="opus"' }, + { codec: 'vorbis', container: 'ogg', mime: 'audio/ogg; codecs="vorbis"' }, + { codec: 'vorbis', container: 'webm', mime: 'audio/webm; codecs="vorbis"' }, + { codec: 'flac', container: 'flac', mime: 'audio/flac' }, + + { codec: 'pcm', container: 'wav', mime: 'audio/x-wav' }, { codec: 'wav', container: 'wav', mime: 'audio/wav' }, + { codec: 'alac', container: 'mp4', mime: 'audio/mp4; codecs="alac"' }, ]; const DEFAULT_TRANSCODING_PROFILES = [ - { audioCodec: 'opus', container: 'ogg', protocol: 'http' }, { audioCodec: 'mp3', container: 'mp3', protocol: 'http' }, + { audioCodec: 'opus', container: 'ogg', protocol: 'http' }, ]; const DIRECT_PLAY_PROFILES: { @@ -72,9 +83,9 @@ function detectBrowserProfile() { const audio = new Audio(); for (const { codec, container, mime } of CODEC_PROBES) { - if (audio.canPlayType(mime) === 'probably') { + if (audio.canPlayType(mime) === 'maybe' || audio.canPlayType(mime) === 'probably') { DIRECT_PLAY_PROFILES.push({ - audioCodecs: [codec], + audioCodecs: Array.isArray(codec) ? codec : [codec], containers: [container], protocols: ['http'], });