美文网首页让前端飞
vue-cli3微信H5网页背景音乐自动播放

vue-cli3微信H5网页背景音乐自动播放

作者: 小鳄鱼的大哥哦 | 来源:发表于2019-07-09 13:40 被阅读0次

    比较坑的代码

    HTML部分

    <audio loop id="media" autoplay preload>
      <source src="../assets/bg.mp3">
    </audio>
    

    JS部分

    mounted() {
        wx.ready(function() {
          document.getElementById("media").play();
          document.getElementById("media").volume = 0.8;
        });
        document.addEventListener(
          "WeixinJSBridgeReady",
          function() {
            document.getElementById("media").play();
          },
          false
        );
        this.playing = true;
      }
    

    以上代码在IOS端微信浏览器死活播放不出来,调试工具上可以,真机就不行了。。。

    后面经过多方调试,发现并不是IOS和微信的锅,当然它们也造成了一些影响。

    后来实在没办法了,猜想可能是

    • 缓存机制问题
    • 资源延迟引用的问题
    • 打包之后的路径问题

    试了一下这样的引用方式:
    HTML部分

    <audio loop id="media" autoplay preload>
      <source :src="audioSrc">
    </audio>
    

    JS部分,改成require引入

    data() {
        return {
          audioSrc: require('../assets/bg.mp3'),
        };
      },
    mounted() {
        wx.ready(function() {
          document.getElementById("media").play();
          document.getElementById("media").volume = 0.8;
        });
        document.addEventListener(
          "WeixinJSBridgeReady",
          function() {
            document.getElementById("media").play();
          },
          false
        );
      }
    

    OK,居然成功了,我也是醉了。

    相关文章

      网友评论

        本文标题:vue-cli3微信H5网页背景音乐自动播放

        本文链接:https://www.haomeiwen.com/subject/kunzhctx.html