HTML5 音频播放器中的搜索不一致

2024-04-06

我想从特定时间戳开始播放音频。但我什至无法让最简单的例子正常工作。我尝试了以下方法,并进行了修改w3school 的例子 http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_av_prop_currenttime.

<body>
    <audio src="skyfall.mp3" id="audio" controls preload></audio>
    <button onclick="play()">Play</button>
</body>
<script type="text/javascript">
    var secs = 32;
    function play(){

        var p = document.getElementById("audio");
        p.currentTime = secs;
        console.log('Playing at secs: ' + secs); 
        p.play();
    }
</script>

但每个浏览器上播放的音频都不同:Windows 版 Chrome 大约延迟了 4 秒,Android 版 Chrome 似乎准确无误,Mobile Safari 则关闭。 (即使 VLC 在播放文件时也存在此问题。)如果从文件开头开始播放,它们将保持同步。

因此,在我看来,HTML5 音频标准要么实施不正确,要么解释不充分。

我读到服务器端支持有时是罪魁祸首,但我不确定当我读取本地文件时这会是一个问题。最终我希望在 Cordova 项目中实现这一点。

有任何想法吗?


我遇到了同样的问题,我通过将 MP3 文件转换为 CBR(恒定比特率)格式来解决它。那么就可以解决两者之间不一致的问题当前时间和真实的sound.

选择CBR格式 https://i.stack.imgur.com/YIbTr.jpg


Steps:

  • 下载并安装“Audacity”(对于任何平台都是免费的)
  • 打开您的 MP3 文件
  • 单击[文件] -> [导出] -> [选项] -> [常量](参见:将 MP3 转换为恒定比特率 https://sites.google.com/site/listentoourlights//home/how-to/converting-mp3-to-constant-bit-rate)
  • Audacity 会要求您提供 LAME MP3 编码器 (参见:【下载并安装LAME MP3编码器】)

不会有不一致/异步问题。


另请参阅:

  • HTML5 音频在 Firefox 中从错误的位置开始 https://stackoverflow.com/questions/22911175/html5-audio-starts-from-the-wrong-position-in-firefox
  • HTML5 音频播放器中的搜索不一致 https://stackoverflow.com/questions/32144092/inconsistent-seeking-in-html5-audio-player

TJ_蔡 /[电子邮件受保护] /cdn-cgi/l/email-protection

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML5 音频播放器中的搜索不一致 的相关文章

随机推荐