Javascript/HTML5:获取音频标签的当前时间

Akh*_*dar 5 html javascript jquery html5

我的模板中有一个音频标签,我需要在按钮点击时显示它的当前时间.请检查下面的代码:

var myaudio = document.getElementsByTagName("audio")[0];
var cur_time = myaudio.currentTime;
$('#curPosition').val(cur_time);
Run Code Online (Sandbox Code Playgroud)

但它总是在音频播放时将当前时间返回0.有人对此有任何想法吗?

谢谢

Abh*_*hek 6

你可以这样尝试

<audio id="track" src="http://upload.wikimedia.org/wikipedia/commons/a/a9/Tromboon-sample.ogg"
       ontimeupdate="document.getElementById('tracktime').innerHTML = Math.floor(this.currentTime) + ' / ' + Math.floor(this.duration);">
    <p>Your browser does not support the audio element</p>
</audio>
<span id="tracktime">0 / 0</span>
<button onclick="document.getElementById('track').play();">Play</button>
Run Code Online (Sandbox Code Playgroud)

或者在 javascript 中你可以这样做

<audio id='audioTrack' ontimeupdate='updateTrackTime(this);'>
  Audio tag not supported in this browser</audio>
<script>
function updateTrackTime(track){
  var currTimeDiv = document.getElementById('currentTime');
  var durationDiv = document.getElementById('duration');

  var currTime = Math.floor(track.currentTime).toString(); 
  var duration = Math.floor(track.duration).toString();

  currTimeDiv.innerHTML = formatSecondsAsTime(currTime);

  if (isNaN(duration)){
    durationDiv.innerHTML = '00:00';
  } 
  else{
    durationDiv.innerHTML = formatSecondsAsTime(duration);
  }
}
</script>
Run Code Online (Sandbox Code Playgroud)

我目前正在从 javascript 中抽出时间


laa*_*sto 5

这是一个错字.你声明var myaudio然后你audio.currentTime不使用myaudio.currentTime

尝试:

var myaudio = document.getElementsByTagName("audio")[0];
var cur_time = myaudio.currentTime;//<-----Change here
$('#curPosition').val(cur_time);
Run Code Online (Sandbox Code Playgroud)

DEMO