javascript - 如何将自定义音频播放器的总时间转换为分钟数?

标签 javascript html css audio dom-events

我目前有一个运行良好的音频播放器,可以显示当前时间占总时间的比例。

<audio id="audioPlayer" 
    preload="true" 
    ontimeupdate="document.getElementById('tracktime').innerHTML = Math.floor(this.currentTime) + ' / ' + Math.floor(this.duration);">
    <source src="oh-my.mp3">      
</audio>


<div id="wrapper">
    <!--Audio Player Interface-->
    <div id="audioplayer">
        <button id="pButton" class="play" onclick="document.getElementById('audioplayer').play();"></button>
        <div id="timeline">
            <div class="progress" id="progress"></div>
            <div id="playhead"></div>
        <span id="tracktime">0 / 0</span>

        </div>
    </div>
</div>

虽然问题是它以秒而不是分钟显示,例如:222/342。我想知道如何将当前时间和总时间转换为分钟,我假设用 math.Floor 起诉某些东西。 链接到我的fiddle.

最佳答案

获取 session 记录: Math.floor(this.currentTime/60)

我建议创建 formatTime 函数(因为您将至少使用它两次):

function formatTime( time ) {
  let minutes = Math.floor( time / 60 )
  let timeForSeconds = time - ( minutes * 60 ) // seconds without counted minutes 
  let seconds = Math.floor( timeForSeconds )
  let secondsReadable = seconds > 9 ? seconds : `0${seconds}` // To change 2:2 into 2:02
  return `${minutes}:${secondsReadable}`
}

然后你可以交换它:ontimeupdate="document.getElementById('tracktime').innerHTML = formatTime( this.currentTime ) + '/' + formatTime( this.duration );">

关于javascript - 如何将自定义音频播放器的总时间转换为分钟数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59554776/

相关文章:

html - 为什么内联 block 渲染略低于比较 block ?

javascript - 将 ng-model 值传递给 angular 指令

javascript - dc.js饼图图例溢出

javascript - 无法设置溢出 : hidden; on a div

html - 是否可以通过父级最大值设置最大图像尺寸?

css - 如何在 css 和 html5 中创建带有曲线的 div?

javascript - 如何阻止这个 while 循环导致浏览器崩溃?

javascript - 使用 jQuery 创建 DOM 结构进行单元测试

html - 选择所有带有 css 渐变样式的元素

javascript - 如何使 CSS 与 MUI TableContainer 一起工作