fix not being able to play audio for kana only terms

This commit is contained in:
Alex Yatskov 2017-02-18 19:12:39 -08:00
parent 701c91ea66
commit 1a52a2d8d5
2 changed files with 23 additions and 5 deletions

View File

@ -17,6 +17,7 @@
</div> </div>
<script src="../lib/jquery-3.1.1.min.js"></script> <script src="../lib/jquery-3.1.1.min.js"></script>
<script src="../lib/wanakana.min.js"></script>
<script src="js/util.js"></script> <script src="js/util.js"></script>
<script src="js/frame.js"></script> <script src="js/frame.js"></script>
</body> </body>

View File

@ -164,11 +164,6 @@ class Frame {
} }
playAudio(definition) { playAudio(definition) {
let url = `https://assets.languagepod101.com/dictionary/japanese/audiomp3.php?kanji=${encodeURIComponent(definition.expression)}`;
if (definition.reading) {
url += `&kana=${encodeURIComponent(definition.reading)}`;
}
for (const key in this.audioCache) { for (const key in this.audioCache) {
const audio = this.audioCache[key]; const audio = this.audioCache[key];
if (audio !== null) { if (audio !== null) {
@ -176,6 +171,28 @@ class Frame {
} }
} }
let kana = definition.reading;
let kanji = definition.expression;
if (!kana) {
if (!kanji) {
return;
}
if (wanakana.isHiragana(kanji)) {
kana = kanji;
kanji = null;
}
}
const params = [];
if (kanji) {
params.push(`kanji=${encodeURIComponent(kanji)}`);
}
if (kana) {
params.push(`kana=${encodeURIComponent(kana)}`);
}
const url = `https://assets.languagepod101.com/dictionary/japanese/audiomp3.php?${params.join('&')}`;
let audio = this.audioCache[url]; let audio = this.audioCache[url];
if (audio) { if (audio) {
audio.currentTime = 0; audio.currentTime = 0;