我有一个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();
来解决。