Javascript HTML5:如何以毫秒为单位获取音频标签的currentTime和duration

Javascript HTML5:如何以毫秒为单位获取音频标签的currentTime和duration,javascript,jquery,html,audio,html5-audio,Javascript,Jquery,Html,Audio,Html5 Audio,我正在使用HTML5音频标签在我的模板中播放声音文件。出于某种目的,我需要跟踪当前时间和持续时间,它最多显示毫秒。现在我可以在几秒钟内得到这些值。有什么可能的方法吗?下面是我的代码: HTML <audio controls id="track" src="<path-to-soundtrack>" ontimeupdate="TrackAudio(this)"> <p>Your browser does not support the audio el

我正在使用HTML5音频标签在我的模板中播放声音文件。出于某种目的,我需要跟踪当前时间和持续时间,它最多显示毫秒。现在我可以在几秒钟内得到这些值。有什么可能的方法吗?下面是我的代码:

HTML
<audio controls id="track" src="<path-to-soundtrack>"
   ontimeupdate="TrackAudio(this)">
<p>Your browser does not support the audio element</p>
</audio>


JAVASCRIPT
function TrackAudio(element){
var curTime = Math.floor(element.currentTime);
console.log(curTime)   //Value in seconds.
}
HTML
您的浏览器不支持音频元素

JAVASCRIPT 功能跟踪音频(元素){ var curTime=数学地板(element.currentTime); console.log(curTime)//以秒为单位的值。 }
您可以使用:

<audio id="track" controls>
  <source src="your.mp3" type="audio/mpeg">
  <source src="your.ogg" type="audio/ogg">
</audio> 
<script type="text/javascript">
var audio = document.getElementById('track');
audio.addEventListener('timeupdate',function(){
    var currentTimeMs = audio.currentTime*1000;
    console.log(currentTimeMs);
},false);
</script>
。它取决于浏览器的实现,因此请记住,不同的浏览器/设备会产生不同的结果

您应该使用addEventListener方法,而不是ontimeupdate属性-它更易于维护


此外,如果您需要浏览器覆盖范围,最好同时使用ogg和mp3音频文件作为源。

我不知道您为什么要在这里使用
Math.floor
。如果没有
Math.floor
,则
element.currentTime
的值应包含浏览器能够承受的精度。因此,
element.currentTime*1000
应该以毫秒为单位给出当前时间。“我是不是误解了什么?”音乐方面,ut:是的,那会更有帮助。可以使用精度值来显示最长为毫秒的时间值。非常感谢。这个答案不能解释你是如何得到文件的总时间的。