使用 javascript 解析和显示 HTML 音频当前时间
Parsing and showing HTML audio current time with javascript
我正在开发一个普通的 JavaScript + HTML 音频播放器,此时我想构建一个界面,以 [=29= 的形式显示音频的当前时间].
对于我可以搜索的内容,HTML Audio/Video DOM Reference 只有一个本机函数 - audio|video.currentTime
- 即 return 当前音频时间(以秒为单位,具有较大的小数精度)。
为了做到这一点,我编写了代码:
HTML
<audio id='audio' src="http://www.stephaniequinn.com/Music/Canon.mp3" controls></audio>
<div id="timer">00:00</div>
JavaScript
var audio = document.getElementById('audio'),
timer = document.getElementById('timer');
var update = setInterval(function() {
timer.innerHTML = audio.currentTime;
}, 10);
我尝试了很多方法,但无法按照我想要的方式格式化输出。
希望你们中的一些人能对此有所启发。
我认为这是最优雅的方式:
var seconds = audio.currentTime % 60;
var minutes = Math.floor(audio.currentTime / 60);
timer.innerHTML = ('0' + minutes).substr(-2) + ':' + ('0' + seconds).substr(-2);
工作编辑CodePen
只需要一点数学知识!以下JS:
var update = setInterval(function() {
var mins = Math.floor(audio.currentTime / 60);
var secs = Math.floor(audio.currentTime % 60);
if (secs < 10) {
secs = '0' + String(secs);
}
timer.innerHTML = mins + ':' + secs;
}, 10);
我正在开发一个普通的 JavaScript + HTML 音频播放器,此时我想构建一个界面,以 [=29= 的形式显示音频的当前时间].
对于我可以搜索的内容,HTML Audio/Video DOM Reference 只有一个本机函数 - audio|video.currentTime
- 即 return 当前音频时间(以秒为单位,具有较大的小数精度)。
为了做到这一点,我编写了代码:
HTML
<audio id='audio' src="http://www.stephaniequinn.com/Music/Canon.mp3" controls></audio>
<div id="timer">00:00</div>
JavaScript
var audio = document.getElementById('audio'),
timer = document.getElementById('timer');
var update = setInterval(function() {
timer.innerHTML = audio.currentTime;
}, 10);
我尝试了很多方法,但无法按照我想要的方式格式化输出。 希望你们中的一些人能对此有所启发。
我认为这是最优雅的方式:
var seconds = audio.currentTime % 60;
var minutes = Math.floor(audio.currentTime / 60);
timer.innerHTML = ('0' + minutes).substr(-2) + ':' + ('0' + seconds).substr(-2);
工作编辑CodePen
只需要一点数学知识!以下JS:
var update = setInterval(function() {
var mins = Math.floor(audio.currentTime / 60);
var secs = Math.floor(audio.currentTime % 60);
if (secs < 10) {
secs = '0' + String(secs);
}
timer.innerHTML = mins + ':' + secs;
}, 10);