aboutsummaryrefslogtreecommitdiff
path: root/ext/mixed/js
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2020-04-17 17:48:55 -0400
committertoasted-nutbread <toasted-nutbread@users.noreply.github.com>2020-04-18 14:23:34 -0400
commitfcbfde506abf6ca3474d2dfdf4f337b86b0bb579 (patch)
treecd1103883022a3feb48225347f02eb121c5a120e /ext/mixed/js
parent9fe7b9ad29958b148162bfc2d065a7e32a986291 (diff)
Await and handle errors from audio.play()
Diffstat (limited to 'ext/mixed/js')
-rw-r--r--ext/mixed/js/audio-system.js2
-rw-r--r--ext/mixed/js/display.js9
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 {