Vue播放音频文件(声音)

使用场景

  • 按钮/点击事件中触发一段音效
  • 消息通知
  • 数据刷新
  • 页面背景音

对于页面背景音 来说比较简单,直接在App.vue中使用audio标签即可

<!-- autoplay 自动播放 -->
<!-- loop 循环播放 -->
<audio src="./../static/music/10683.mp3" autoplay loop></audio>

最重要的是在一个按钮或者事件中触发音效

1、第一步

  • App.vue 中添加<audio></audio>标签
<template>
  <div id="app">
    <router-view />
    <audio src="" id="eventAudio"></audio>
  </div>
</template>

2、第二步

  • main.js 中编写事件
// 引入音频文件
import audio from './../static/music/10683.mp3'

// 方法1:注册播放音频事件到Vue实例上
Vue.prototype.playAudio = () => {
  let buttonAudio = document.getElementById('eventAudio');
  buttonAudio.setAttribute('src',audio)
  buttonAudio.play()
}

// 方法2:添加自定义属性
document.body.addEventListener('click',function( e ){
  let event = e || window.event;
  let target = event.target || event.srcElement;
  let clickMusic = target.getAttribute('clickMusic')
  if(clickMusic==='true') Vue.prototype.playAudio()
  else return false;
})

3、第三步

方法1:
在所需事件中调用Vue原型上的事件

 <div @click="isPlayAudio"></div>

 isPlayAudio(){
   this.playAudio()
 }

方法2:
在所需元素上添加自定义的属性

 <div clickMusic='true' ></div>

!!注意 !!

最新的chrome已不允许event.play(),所以在chrome下,方法1可能无效,但是方法2是可以的

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值