【发布时间】:2017-01-29 22:28:12
【问题描述】:
我在 HTML5 音频播放器中显示 MP3 文件的持续时间时遇到问题。有时它会加载持续时间,有时它不会。
它不加载的时间是我对 CSS 进行更改和刷新页面的时候。
当我更改 MP3 文件以加载另一个 MP3 文件时,会显示持续时间。当我刷新页面时它就消失了。
这是持续时间的代码:
audio.addEventListener('loadedmetadata', function(){
progress.setAttribute('max', Math.floor(audio.duration));
duration.textContent = toHHMMSS(audio.duration);
});
我是 JavaScript 新手,所以我不知道如何编码。我正在使用来自https://codepen.io/davatron5000/pen/uqktG 的代码,当您刷新页面时,mp3 文件的持续时间消失。
【问题讨论】:
-
持续时间实际上不是元数据,试试
oncanplaythrough事件;那么应该是正确的 -
@dandavis 持续时间在元数据中...
-
如果您在标记 (html) 上设置 src 并在之后执行脚本,则在附加事件侦听器时可能已经加载了媒体的缓存版本。因此,您的事件处理程序永远不会触发。可以在js中重新设置src,也可以直接查看duration。
标签: javascript html html5-audio