2
0
Эх сурвалжийг харах

Merge pull request #1258 from guusdk/1257_notifications-prefer-probably-over-maybe

#1257: Prefer 'probably' over 'maybe' when evaluating Audio support.
JC Brand 6 жил өмнө
parent
commit
30e045517b

+ 1 - 0
CHANGES.md

@@ -4,6 +4,7 @@
 
 - Use [Lerna](https://lernajs.io/) to create the @converse/headless package
 - Use ES2015 modules instead of UMD.
+- #1257: Prefer 'probably' over 'maybe' when evaluating audio play support.
 
 ## 4.0.3 (2018-10-22)
 

+ 14 - 9
src/converse-notification.js

@@ -102,22 +102,27 @@ converse.plugins.add('converse-notification', {
                 _converse.isMessageToHiddenChat(message);
         };
 
+
         _converse.playSoundNotification = function () {
             /* Plays a sound to notify that a new message was recieved.
              */
             // XXX Eventually this can be refactored to use Notification's sound
             // feature, but no browser currently supports it.
             // https://developer.mozilla.org/en-US/docs/Web/API/notification/sound
-            let audio;
             if (_converse.play_sounds && !_.isUndefined(window.Audio)) {
-                audio = new Audio(_converse.sounds_path+"msg_received.ogg");
-                if (audio.canPlayType('audio/ogg')) {
-                    audio.play();
-                } else {
-                    audio = new Audio(_converse.sounds_path+"msg_received.mp3");
-                    if (audio.canPlayType('audio/mp3')) {
-                        audio.play();
-                    }
+                const audioOgg = new Audio(_converse.sounds_path+"msg_received.ogg");
+                const canPlayOgg = audioOgg.canPlayType('audio/ogg');
+                if (canPlayOgg === 'probably') {
+                    return audioOgg.play();                 
+                }
+                const audioMp3 = new Audio(_converse.sounds_path+"msg_received.mp3");
+                const canPlayMp3 = audioMp3.canPlayType('audio/mp3');           
+                if (canPlayMp3 === 'probably') {
+                    audioMp3.play();
+                } else if (canPlayOgg === 'maybe') {
+                    audioOgg.play();
+                } else if (canPlayMp3 === 'maybe') {
+                    audioMp3.play();
                 }
             }
         };