搜索

首页  >  问答  >  正文

javascript - chrome audio.duration 获取不准 怎么破?

audio.duration 是真实属性值的2倍

4秒音频获取到的事8.xxxxx
5秒音频获取到的是10.xxx

MP3 文件下载:http://picosong.com/TmAm/

  <audio controls>
    <source src="">
</audio>

chrome 下存在这个问题

IE 下面获取的属性值是正常的。


PHPzPHPz2896 天前362

全部回复(1)我来回复

  • 高洛峰

    高洛峰2017-04-10 17:33:22

    求解答:
    我在电脑上加载音频时长为29.75464534秒, 而用手机访问同一个地址,返回的15.345345... 秒。
    什么原因导致加载的duration不同?

     AUDIO = document.getElementById('audio')
    AUDIO.addEventListener('loadeddata', () => {
        console.log('声音加载好了222')
        var second = Math.floor(AUDIO.duration)
    }, false)

    刚刚找到原因了: 是因为压缩问题。 原本5兆的wav文件, 经过格式工厂压缩和转换成mp3格式
    反复压缩几遍之后,成了200kb左右的mp3文件。
    压缩太厉害了,会失真。导致时长计算不准确。
    压缩不能压太厉害了。保留中等品质是没问题的。

    回复
    0
  • 取消回复