Skip to content

Commit 09a3b28

Browse files
committed
Disable WebM on Safari <15
This is a temporary measure as Safari isn't currently decoding WebM files correctly This issue is being tracked in #1476.
1 parent 309376b commit 09a3b28

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/howler.core.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,11 @@
264264
var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, '');
265265

266266
// Opera version <33 has mixed MP3 support, so we need to check for and block it.
267-
var checkOpera = self._navigator && self._navigator.userAgent.match(/OPR\/([0-6].)/g);
267+
var ua = self._navigator ? self._navigator.userAgent : '';
268+
var checkOpera = ua.match(/OPR\/([0-6].)/g);
268269
var isOldOpera = (checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33);
270+
var checkSafari = ua.indexOf('Safari') !== -1 && ua.indexOf('Chrome') === -1;
271+
var isOldSafari = (checkSafari && parseInt(ua.match(/Version\/(.*?) /)[1], 10) < 15);
269272

270273
self._codecs = {
271274
mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),
@@ -279,8 +282,8 @@
279282
m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),
280283
m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),
281284
mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),
282-
weba: !!audioTest.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ''),
283-
webm: !!audioTest.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, ''),
285+
weba: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, '')),
286+
webm: !!(!isOldSafari && audioTest.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, '')),
284287
dolby: !!audioTest.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/, ''),
285288
flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')
286289
};

0 commit comments

Comments
 (0)