about summary refs log tree commit diff
path: root/app/javascript
diff options
context:
space:
mode:
Diffstat (limited to 'app/javascript')
-rw-r--r--app/javascript/mastodon/middleware/sounds.js22
1 files changed, 21 insertions, 1 deletions
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) => {