【问题标题】:Audio files (.mp3) don't play on page reload, only once when VS code/Live Server extension auto-reloads on save音频文件 (.mp3) 在页面重新加载时不播放,仅在 VS 代码/Live Server 扩展在保存时自动重新加载时播放一次
【发布时间】:2020-07-27 03:30:04
【问题描述】:

在 Chrome/Firefox/Edge 上测试。我正在使用 VS 代码和“Live Server”扩展开发 Win10。

页面加载,播放第一个音频文件(.mp3),然后出现不同的元素,带有 Jquery 延迟等。在某个

    淡入时,播放第二个音频文件。

    使用“Live Server”的自动重新加载保存功能或通过单击导航栏指向同一页面的链接(测试目的),声音和 Jquery 功能工作正常,但如果我用浏览器本身刷新,声音文件不再播放。

    我尝试了在 google 上找到的解决方案,例如设置 currentTime、onLoad,但它们并没有真正解决类似的问题,我取得的最大成功是从一开始就获得了相同的结果。

    我刚刚开始学习JS和Jquery,如果代码混乱,请见谅。

  <script type="text/javascript" src="script/jquery-3.5.1.min.js"></script>

  <script type="text/javascript" src="script/main.js"></script>

  <script>
      var audio1 = $("#mantra")[0];
      var audio2 = $("#wind")[0];
      audio1.play()
        

    $("document").ready(function () {
      $(".choix").hide()   // .choix is the class of fig1, fig2, fig3, fig4
      $("#fig1").delay(9500).fadeIn(3000);
      $("#fig2").delay(9550).fadeIn(3000);
      $("#fig3").delay(9600).fadeIn(3000);
      $("#fig4").delay(9650).fadeIn(3000);
      
      $("#tagline").hide().delay(2000).fadeIn(1500)
          .delay(1500).fadeOut(2000).queue(function(n) {
          $(this).html("<br> Start here");
          n();
        }).delay(700).fadeIn(2000);
      
      $(".textNav").hide().delay(800).fadeIn(1500);

      });
      $("#wind").stop("true").delay(9400).queue(function() {  //9400ms delay to start just before fig1+
        audio2.play()
      });

      
    });
  </script>

【问题讨论】:

    标签: javascript html jquery css html5-audio


    【解决方案1】:

    如果没有播放音频,请检查控制台,您会发现错误提示

    DOMException: play() 失败,因为用户没有与 首先记录。

    这是因为浏览器不允许在页面加载时自动播放音乐。在播放音频之前,用户必须与窗口进行一些交互(单击、点击等)。

    Source

    【讨论】:

    • 我太笨了,不敢相信我没有检查控制台...谢谢指点!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多