javascript - chrome audio.duration 获取不准 怎么破?
PHPz
PHPz 2017-04-10 17:31:22
0
1
358

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

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

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

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

chrome 下存在这个问题

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


PHPz
PHPz

学习是最好的投资!

reply all(1)
小葫芦

求解答:
我在电脑上加载音频时长为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文件。
压缩太厉害了,会失真。导致时长计算不准确。
压缩不能压太厉害了。保留中等品质是没问题的。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template