Vanilla JS - 显示视频长度(如果声明)

时间:2015-09-22 09:49:55

标签: javascript math html5-video duration

我希望以下列两种格式显示视频长度:

如果少于59秒:

{no_of_sec}

如果超过59秒:

{no_of_sec}:{no_of_sec}

目前这段代码:

document.getElementById("video2").duration

返回以下值:

18.133313

我只需要以最接近的秒数然后以上面的格式获得它。没有过度思考,我认为我需要绕过它。这可以使用Math.round()来完成,但是当数字超过59秒时,我就是在努力的地方。

我打算将它放入一个函数中,该函数将使用一个名为:

的类循环遍历视频元素
.has--videoDuration

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

考虑到总秒数,您可以计算分/秒组件,如下面的代码段所示:



var totalSeconds = 18.133313;

var minutes = Math.floor(totalSeconds / 60);
var seconds = Math.floor(totalSeconds % 60);

alert(minutes + ':' + seconds);




答案 1 :(得分:0)

以您的代码为基础:

var duration = Math.round(document.getElementById("video2").duration);
var minutes = ~~(duration / 60); // 1 minute every 60 seconds
var seconds = duration - 60 * minutes; // Remaining seconds
var timeString = minutes ? (minutes + ':' + seconds) : seconds;

我想timeString就是你要找的。

BTW:我宁愿在持续时间内使用Math.floor(或~~),但持续时间归一化的确切选择与其余部分无关。