diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-04-17 17:48:55 -0400 | 
|---|---|---|
| committer | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-04-18 14:23:34 -0400 | 
| commit | fcbfde506abf6ca3474d2dfdf4f337b86b0bb579 (patch) | |
| tree | cd1103883022a3feb48225347f02eb121c5a120e | |
| parent | 9fe7b9ad29958b148162bfc2d065a7e32a986291 (diff) | |
Await and handle errors from audio.play()
| -rw-r--r-- | ext/mixed/js/audio-system.js | 2 | ||||
| -rw-r--r-- | ext/mixed/js/display.js | 9 | 
2 files changed, 9 insertions, 2 deletions
| diff --git a/ext/mixed/js/audio-system.js b/ext/mixed/js/audio-system.js index 94885d34..3273f982 100644 --- a/ext/mixed/js/audio-system.js +++ b/ext/mixed/js/audio-system.js @@ -40,7 +40,7 @@ class TextToSpeechAudio {          }      } -    play() { +    async play() {          try {              if (this._utterance === null) {                  this._utterance = new SpeechSynthesisUtterance(this.text || ''); diff --git a/ext/mixed/js/display.js b/ext/mixed/js/display.js index f30a65e6..b4a93d99 100644 --- a/ext/mixed/js/display.js +++ b/ext/mixed/js/display.js @@ -823,7 +823,14 @@ class Display {              this.audioPlaying = audio;              audio.currentTime = 0;              audio.volume = this.options.audio.volume / 100.0; -            audio.play(); +            const playPromise = audio.play(); +            if (typeof playPromise !== 'undefined') { +                try { +                    await playPromise; +                } catch (e2) { +                    // NOP +                } +            }          } catch (e) {              this.onError(e);          } finally { |