diff --git a/app/javascript/mastodon/middleware/sounds.js b/app/javascript/mastodon/middleware/sounds.js index 200efa3d7..639214b14 100644 --- a/app/javascript/mastodon/middleware/sounds.js +++ b/app/javascript/mastodon/middleware/sounds.js @@ -1,3 +1,14 @@ +const createAudio = sources => { + const audio = new Audio(); + sources.forEach(({ type, src }) => { + const source = document.createElement('source'); + source.type = type; + source.src = src; + audio.appendChild(source); + }); + return audio; +} + const play = audio => { if (!audio.paused) { audio.pause(); @@ -9,7 +20,16 @@ const play = audio => { export default function soundsMiddleware() { const soundCache = { - boop: new Audio(['/sounds/boop.mp3']) + boop: createAudio([ + { + src: '/sounds/boop.ogg', + type: 'audio/ogg', + }, + { + src: '/sounds/boop.mp3', + type: 'audio/mpeg' + }, + ]), }; return ({ dispatch }) => next => (action) => { diff --git a/public/sounds/boop.ogg b/public/sounds/boop.ogg new file mode 100644 index 000000000..a2124e116 Binary files /dev/null and b/public/sounds/boop.ogg differ