移动浏览器上的 HTML5 音频持续时间错误,在常规浏览器上运行良好(m4a 文件)

Posted

技术标签:

【中文标题】移动浏览器上的 HTML5 音频持续时间错误,在常规浏览器上运行良好(m4a 文件)【英文标题】:Wrong duration HTML5 audio on mobile browsers, works fine on regular browsers (m4a file) 【发布时间】:2017-03-24 06:03:53 【问题描述】:

我正在使用 Savedeo API 获取 youtube 音频文件并尝试在浏览器上播放音频。

当我尝试在常规浏览器上播放纯音频文件 (.m4a) 时,一切正常。但是,当我在我的 iphone(safari 和 chrome)上的移动浏览器上测试它时,音频文件的持续时间增加了一倍。基本上在音频结束后,加了一个padding。

为什么会这样?是否有任何解决方法。如果您需要更多信息,我们很乐意提供。

谢谢

【问题讨论】:

【参考方案1】:

我使用 44100 Hz 采样率和 128kb 比特率的 MP3 遇到了这个问题。解决办法是用ffmpeg改变采样率:

ffmpeg -i your.mp3 -ar 22050 your_fixed.mp3

您可以使用 ffprobe 检索有关 MP3 的关键信息:

ffprobe your.mp3

在使用实际 MP3 文件计算持续时间时,iTunes 也会报告错误的持续时间。这很尴尬,因为您会期望 iTunes 得到这样的正确结果。这表明 Apple 用于 MP3 持续时间计算的某些库中存在错误。

【讨论】:

以上是关于移动浏览器上的 HTML5 音频持续时间错误,在常规浏览器上运行良好(m4a 文件)的主要内容,如果未能解决你的问题,请参考以下文章

HTML5 音频持续时间返回“未定义”(jQuery)

移动设备上的 HTML5 base64 编码音频

Android 浏览器在每次 play() 后卸载 HTML5 音频元素,导致延迟

如何获得 html5 音频持续时间

iOS Web 应用上的 HTML5 音频

HTML5 音频标签持续时间