我发现以下代码适用于桌面浏览器和Android,但不适用于我的iPad。
document.onclick = () => { const testAudio = document.createElement("AUDIO"); testAudio.oncanplaythrough = () => { console.log("CAN PLAY!"); testAudio.play(); } console.log("LOADING AUDIO..."); testAudio.src = "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"; }
当我在iPad的Chrome inspector上看到控制台日志时,它只会打印“加载音频…”从不打印“可以玩”。它在我的iPad Safari上也不起作用。
原因是什么?我该如何解决?
移动浏览器在加载内容时通常会比较犹豫,但会调用 load() 应该迫使他们这样做。
load()
document.onclick = () => { const testAudio = document.createElement("AUDIO"); testAudio.oncanplaythrough = () => { console.log("CAN PLAY!"); testAudio.play(); } console.log("LOADING AUDIO..."); testAudio.src = "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"; testAudio.load(); }