**好,所以我设法创建了设置歌曲定时器的代码……。问题是,正如您所看到的,我必须为两个不同的函数重复同一行代码( “ tiempo”和“ duracion”),唯一的区别在于,一个我想知道.duration时间,另一个我想知道.currentTime。
所以我想隔离重复的代码部分,以后再调用它,但我不知道该怎么做
变量“ totalNumberOfSeconds”需要更改两个函数中的内容,如果我隔离出重复“结果”的代码为NaN,则为NaN
““ audio”是包含带有歌曲的html标签的变量,“ timer”是包含“ 0:00/0:00”计时器的标签
****
audio.ontimeupdate = function(){totalTiempo()};
function totalTiempo() {
document.getElementById("timer").innerHTML = tiempo() + '/' + duracion()
}
function tiempo() {
totalNumberOfSeconds = Math.floor(audio.currentTime)
const hours = parseInt( totalNumberOfSeconds / 3600 );
const minutes = parseInt( (totalNumberOfSeconds - (hours * 3600)) / 60 );
const seconds = Math.floor((totalNumberOfSeconds - ((hours * 3600) + (minutes * 60))));
const result = (minutes < 10 ? + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds);
console.log(result)
return result
}
function duracion() {
totalNumberOfSeconds = Math.floor(audio.duration)
const hours = parseInt( totalNumberOfSeconds / 3600 );
const minutes = parseInt( (totalNumberOfSeconds - (hours * 3600)) / 60 );
const seconds = Math.floor((totalNumberOfSeconds - ((hours * 3600) + (minutes * 60))));
const result = (minutes < 10 ? + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds);
console.log(result)
return result
}
您可以通过创建一个带有参数的函数来做到这一点,就像这样:
function convertTimeToString(time) {
totalNumberOfSeconds = Math.floor(time)
const hours = parseInt( totalNumberOfSeconds / 3600 );
const minutes = parseInt( (totalNumberOfSeconds - (hours * 3600)) / 60 );
const seconds = Math.floor((totalNumberOfSeconds - ((hours * 3600) + (minutes * 60))));
const result = (minutes < 10 ? + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds);
console.log(result)
return result
}
然后您可以稍后使用所需的任何变量来调用此函数,如下所示:
function tiempo() {
return convertTimeToString(audio.currentTime)
}
function duracion() {
return convertTimeToString(audio.duration)
}
您也可以像这样直接在getTotalTiempo
函数中调用它:
function totalTiempo() {
document.getElementById("timer").innerHTML = convertTimeToString(audio.currentTime) + '/' + convertTimeToString(audio.duration)
}
function totalTiempo() {
document.getElementById("timer").innerHTML = tiempo(audio.currentTime) + '/' + duracion(audio.duration)
}
function getTime(time) {
totalNumberOfSeconds = Math.floor(time)
const hours = parseInt( totalNumberOfSeconds / 3600 );
const minutes = parseInt( (totalNumberOfSeconds - (hours * 3600)) / 60 );
const seconds = Math.floor((totalNumberOfSeconds - ((hours * 3600) + (minutes * 60))));
const result = (minutes < 10 ? + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds);
console.log(result)
return result
}