diff options
| author | Alex Yatskov <alex@foosoft.net> | 2016-06-14 20:33:19 -0700 | 
|---|---|---|
| committer | Alex Yatskov <alex@foosoft.net> | 2016-06-14 20:44:38 -0700 | 
| commit | b91c79e321f8022ee53903cffead04ed4d4760e6 (patch) | |
| tree | d8820c546635dc6801d43883803abafd7a7a84db /ext/fg/js | |
| parent | ad617221308b04e8f26ec52d876603e7aec3a03d (diff) | |
Cache audio samples
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/client.js | 13 | 
1 files changed, 8 insertions, 5 deletions
| diff --git a/ext/fg/js/client.js b/ext/fg/js/client.js index 5b8cfe29..1f77ed95 100644 --- a/ext/fg/js/client.js +++ b/ext/fg/js/client.js @@ -20,7 +20,7 @@  class Client {      constructor() {          this.popup        = new Popup(); -        this.audio        = null; +        this.audio        = {};          this.lastMousePos = null;          this.lastRange    = null;          this.activateKey  = 16; @@ -172,12 +172,15 @@ class Client {          const dfn = this.definitions[index];          const url = `http://assets.languagepod101.com/dictionary/japanese/audiomp3.php?kana=${dfn.reading}&kanji=${dfn.expression}`; -        if (this.audio !== null) { -            this.audio.pause(); +        for (let key in this.audio) { +            this.audio[key].pause();          } -        this.audio = new Audio(url); -        this.audio.play(); +        const audio = this.audio[url] || new Audio(url); +        audio.currentTime = 0; +        audio.play(); + +        this.audio[url] = audio;      }      api_displayKanji(kanji) { |