【问题标题】:HTML5 Audio duration is different in chrome and firefoxchrome和firefox中的HTML5音频持续时间不同
【发布时间】:2018-01-21 22:50:53
【问题描述】:

我已经阅读了这个问题HTML5 Audio Tag Showing Wrong Duration of MP3 in Chrome,但仍然无法解决我的问题。 音频文件的链接在这里: http://img.kmf.com/toefl/listening/TPO/TPO-48-C1.mp3。在 chrome 中,音频的持续时间返回 168.408,但在 Firefox 中返回 169.192194。

document.getElementById('jp_audio_0').addEventListener('loadedmetadata', function() {
    console.log(this.duration);
});
<audio id="jp_audio_0" preload="metadata" src="http://img.kmf.com/toefl/listening/TPO/TPO-48-C1.mp3"></audio>

【问题讨论】:

  • 根据 ffmpeg chrome 是对的...
  • @Kaiido 但是如何解决这个问题?
  • 啊不抱歉,实际上 FF 是对的 ;-) 将添加一个答案。

标签: javascript jquery html google-chrome firefox


【解决方案1】:

Chrome 信任文件中的元数据(ID3 标签)(几乎所有人,甚至 ffmpeg,都信任),但 Firefox 不信任。

您的歌曲实际上是 02:49.17,但它的元数据另有说明。

当您删除这些元数据信息(我使用此 online tool)时,每个人都同意您的音频的持续时间为 02:49.17(或 169.16898s 的 chrome 和 169.192194 的 FF)。

这是文件,没有元数据:

a.onloadedmetadata = e => console.log(a.duration);
<audio id="a" src="https://dl.dropboxusercontent.com/s/adw96fb4xaz377n/TPO-48-C1_noID3.mp3" controls>

【讨论】:

  • Chrome 返回 169.16898,FF 返回 169.192194。是这样吗?@Kaiido
  • 好的,但是即使数据被擦除,长度也存在差异,如何获得相同的结果?
  • 是的,几毫秒的差异是_正常_/预期的 没有真正的方法可以完全一样。
  • @Kaiido 谢谢,我也有一个问题。因为我的生产环境有很多很多mp3文件,有没有什么方法可以快速解决这个问题?
猜你喜欢
  • 2017-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
  • 2012-06-27
  • 1970-01-01
  • 2013-05-26
相关资源
最近更新 更多