Mobile Safari在播放时跳过HTML音频的第一秒()



我有一个React Audio Player,它使用一个useAudio钩子来管理HTML5音频。它在任何地方都可以正常工作,除了Mobile Safari,其中声音在播放器开始播放几秒钟后开始。

奇怪的是,我在调用HTMLAudioElement.play()之前检查了元素上的canplaythrough。于是Safari启动了canplaythrough并开始"播放"。音频,除了音频直到。

一秒左右才真正开始。下面是关于CodeSandbox的完整示例:https://codesandbox.io/s/useaudioplayer-jvftw?file=/src/useAudio.tsx

要复制,在移动Safari中打开并播放音频。

在我的情况下,音频将播放ok第一次。
从第二次开始,safari会跳过一些初始秒。

通过在
myAudio.play();

之前调用
myAudio.load();
来解决。

最新更新