From 57fb496fbcd2c31a462c2090e2391594c1ca8215 Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Fri, 4 Jun 2021 20:17:04 -0400 Subject: [PATCH] Simplify createAudio function (#1728) --- ext/js/media/audio-system.js | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/ext/js/media/audio-system.js b/ext/js/media/audio-system.js index 03e68767..c5207341 100644 --- a/ext/js/media/audio-system.js +++ b/ext/js/media/audio-system.js @@ -42,18 +42,13 @@ class AudioSystem extends EventDispatcher { return this._fallbackAudio; } - createAudio(url, sourceType) { - return new Promise((resolve, reject) => { - const audio = new Audio(url); - audio.addEventListener('loadeddata', () => { - if (!this._isAudioValid(audio, sourceType)) { - reject(new Error('Could not retrieve audio')); - } else { - resolve(audio); - } - }); - audio.addEventListener('error', () => reject(audio.error)); - }); + async createAudio(url, sourceType) { + const audio = new Audio(url); + await this._waitForData(audio); + if (!this._isAudioValid(audio, sourceType)) { + throw new Error('Could not retrieve audio'); + } + return audio; } createTextToSpeechAudio(text, voiceUri) { @@ -70,6 +65,13 @@ class AudioSystem extends EventDispatcher { this.trigger('voiceschanged', e); } + _waitForData(audio) { + return new Promise((resolve, reject) => { + audio.addEventListener('loadeddata', () => resolve()); + audio.addEventListener('error', () => reject(audio.error)); + }); + } + _isAudioValid(audio, sourceType) { switch (sourceType) { case 'jpod101':