about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/javascript/mastodon/middleware/sounds.js22
-rw-r--r--public/sounds/boop.oggbin0 -> 5164 bytes
2 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) => {
diff --git a/public/sounds/boop.ogg b/public/sounds/boop.ogg
new file mode 100644
index 000000000..a2124e116
--- /dev/null
+++ b/public/sounds/boop.ogg
Binary files differ