兼容安卓的自动音乐播放类库

225 阅读1分钟
          <!--
     * @Author: Liu
     * @Date: 2022-04-17 15:38:23
     * @LastEditTime: 2022-04-19 10:06:42
    -->
    <template>
      <div class="music_box" @click="handleSwitch">
        <img
          src="../assets/images/off_mp3.png"
          alt=""
          class="music rotate"
          v-if="playIng"
        />
        <img src="../assets/images/on_mp3.png" alt="" class="music" v-else />
      </div>
    </template>

    <script>
    import { Howl } from "howler";
    let bgplayer = new Howl({
      src: require("../assets/images/music.mp3"),
      preload: true,
      loop: true,
    });

    export default {
      data() {
        return {
          playIng: false,
          music: null,
        };
      },
      mounted() {
        var playAudio = () => {
          bgplayer.play();
          (this.playIng = true),
            document.body.removeEventListener("click", playAudio);
          document.body.removeEventListener("touchstart", playAudio);
        };
        document.body.addEventListener("click", playAudio);
        document.body.addEventListener("touchstart", playAudio);
        //兼容微信
        document.addEventListener("WeixinJSBridgeReady", () => {
          setTimeout(() => {
            playAudio();
          }, 300);
        });
        //兼容易信
        document.addEventListener("YixinJSBridgeReady", playAudio);
      },
      methods: {
        handleSwitch() {
          if (this.playIng) {
            this.playIng = false;
            bgplayer.pause();
          } else {
            this.playIng = true;
            bgplayer.play();
          }
        },
      },
    };
    </script>
    <style lang='scss' scoped>
    .music_box {
      position: absolute;
      top: 6vh;
      right: 0.5rem;
      width: 0.5rem;
      height: 0.5rem;
      z-index: 999999999;
      img {
        width: 100%;
        position: absolute;
        top: 0;
        left: 0;
      }
      .rotate {
        animation: identifier 1.8s infinite linear;
      }
    }

    @keyframes identifier {
      from {
        transform: rotate(0deg);
      }
      to {
        transform: rotate(360deg);
      }
    }
    </style>
    
    
    
    

howler.js

dithub地址

简介