使用<amp-audio>时,Safari仅播放一次音频

时间:2019-08-06 13:37:36

标签: safari html5-audio amp-html

我正在尝试通过 AMP 上的播放按钮来发出多次的简短声音。在 Safari (台式机和移动设备)上,声音只会播放一次。

应该在用户单击按钮时触发声音。

我遵循了amp-audioaudio events的放大器文档

<amp-audio preload="none" id="audio" controlslist="nodownload" hidden>
<div fallback><p>Your browser doesn't support HTML5 audio</p></div>
    <source type="audio/mpeg" src="/media/shortSound.mp3">
    <source type="audio/ogg" src="/media/shortSound.ogg">
</amp-audio>

“本机”音频按钮被隐藏,并通过单击以下按钮(带有on:tap事件)来触发

<div class="button" on="tap: audio.play" role="button" tabindex="0"></div>

我也曾尝试无效地使用absolute URLs并在播放前使用暂停功能,但无济于事。

注意:不幸的是,没有.load事件可以解决Safari上的HTML5之类的问题(这是我在非放大器版本的Safari上播放它的方式)

实际结果:声音播放一次(我第一次单击它)。其余时间什么也没有发生,控制台中也没有消息。我在做什么错了?

2 个答案:

答案 0 :(得分:1)

我发现问题出在我文件的mp3编码上。它使用VBR而不是CBR,使用CBR编码的mp3文件时不会发生此问题。要检查您的编码,我建议使用https://checkmate.gissen.nl/download.php

编辑:这实际上是因为Safari使用HTTPRange而不是经典的get方法来获取其资源。

答案 1 :(得分:0)

希望loop上的<amp-audio>属性可以在这里提供帮助:https://amp.dev/documentation/components/amp-audio/?format=websites