読者です 読者をやめる 読者になる 読者になる

【javascript】android x chromeでAudio.currentTimeをセットしても効かなかったときの対応〜音声再生

やりたかったことは、javascriptでのAudioの再生で所定の場所から再生したいということでした
基本的は以下でできたのですが、android + chromeで動作確認できなかった。
currentTimeを設定しても0になってしまってうまくできませんでした。

<button onclick="playAudio();">再生</button>

<script>
function playAudio() {
    var audio = new Audio();
    audio.src = "/path/to/audio.ogg";
    audio.load();

    // 再生可能になったらスタート
    audio.addEventListener("canplay", function() {
        audio.currentTime = 30;
        audio.play();
    });
}
</script>

で、修正した内容は以下

<script>
function playAudio() {
    var audio = new Audio();
    audio.src = "/path/to/audio.ogg";
    audio.load();

    // 再生可能になったらスタート
    audio.addEventListener("canplay", function() {
        audio.play();
    });

    // ★ココを追加 timeupdateイベントは再生位置が変わると呼ばれる
    audio.addEventListener("timeupdate", function() {
      if (audio.currentTime < 30) {
        audio.currentTime = 30;
        audio.play();
      }
    });
}
</script>

何か強引の感じがするけど、とりあえずやりたいことはできました
以上です