javascript - 设置页面加载时音频对象的当前时间

标签 javascript html html5-audio

加载 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/

相关文章:

javascript - 如何在考虑向后兼容性的情况下使用 HTML5 占位符属性?

javascript - 在 HTML5 中,我可以同时多次播放相同的声音吗?

jquery - 如何防止 Chrome 获取 MP3 文件的最后 128 个字节

javascript - gulp with gulp-ruby-sass : Error: . ./style.css.map:3:1: 未知词

javascript - 以编程方式从 Google Chart 获取系列的颜色

javascript - 使用 document.write 将外部 JavaScript 文件加载到 AngularJS 应用程序中

html - kableExtra column_spec 宽度不起作用

javascript - 尝试播放另一个嵌入式youtube视频时弹出弹出模式的jquery

html - 获取具有绝对位置的父元素的子元素的宽度

javascript - 获取音频标签的 403(禁止)