VUE3封装的一个功能
话不多说直接上代码,自定义控件管理音乐播放,同样原理可以实现播放器状态,进度条都可以,写代码就是需要思路和反复的锤炼,不妨试试手
由于浏览器策略问题,自动播放现在基本上大部分浏览器不支持,在浏览器底层已经加了防爬虫机制,也是出于资源利用的意思,所有需要借用一些其他手段,列如Iframe,自行去百度即可
1、pinia store 注册
import { ref,toRef } from 'vue'
import { defineStore } from 'pinia'
import { useScroll } from "@vueuse/core";
export const useIndexStore = defineStore('index', () => {
const isActive = ref(false)
// 音乐播放
const isPlay = ref(false)
const { x, y } = useScroll(window)
// 音乐播放
function playAudio(bgmusic) {
bgmusic = toRef(bgmusic)
// console.warn(bgmusic)
if (isPlay.value) {
bgmusic.value.pause()
isPlay.value = false
} else {
bgmusic.value.play()
isPlay.value = true
}
}
return { isActive,playAudio, x,y }
})
2.
<script setup>
import { RouterLink } from "vue-router";
import { storeToRefs } from "pinia";
import {
User,
House,
Document,
Reading,
View,
ChatDotSquare,
Headset,Top
} from "@element-plus/icons-vue";
import { useIndexStore } from "@/stores/index";
import logo from"/public/logo.png"
import logoWhite from"/public/logo-white.png"
const indexstore = useIndexStore();
const { bgmusic, y } = storeToRefs(indexstore);
</script>
- 引用即可
<span id=”musicBg” @click=”indexstore.playAudio(bgmusic)”>
</span>