代码之家  ›  专栏  ›  技术社区  ›  Zack Lee

无法在iOS上加载htmlAudioElement音频

  •  0
  • Zack Lee  · 技术社区  · 3 年前

    我发现以下代码适用于桌面浏览器和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上也不起作用。

    原因是什么?我该如何解决?

    0 回复  |  直到 3 年前
        1
  •  1
  •   chrisguttandin    3 年前

    移动浏览器在加载内容时通常会比较犹豫,但会调用 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();
    }