加载html页面时,如何设置音频对象的当前时间?这是我目前正在做的:

var a = document.getElementById("myAudio");

a.addEventListener("timeupdate", function() {
    console.log(this.currentTime);
    // do other stuff like display the current time
}

var isCurrentTimeSetOnStartup = false;
a.addEventListener("canplay", function() {
    if (isCurrentTimeSetOnStartup == false){
        this.currentTime = startTime;
        isCurrentTimeSetOnStartup = true;
    }
});


我觉得这很丑。如果我没有isCurrentTimeSetOnStartup保护,那么这两个事件会相互触发。

最佳答案

您可以将脚本放置在<body>标记的底部,然后使用以下代码设置音频源的currentTime





let a = document.querySelector('#myAudio');
let startTime = 2;


a.addEventListener('canplay', function handler() {
  // Time in seconds
  this.currentTime = startTime;
  // Remove the event listener
  this.removeEventListener('canplay', handler);
});


a.addEventListener('timeupdate', function() {
  //Time in seconds
  console.log(this.currentTime);
});

// Play on DOM-Load
a.play();

<!--http://picosong.com/wwPMj/-->
<audio id="myAudio" controls>
  <source src="https://www.computerhope.com/jargon/m/example.mp3" type="audio/mpeg">
  Your browser does not support HTML5 video.
</audio>

关于javascript - 设置页面加载时音频对象的当前时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51290045/

10-16 19:41