在Vue中使用音频文件

使用场景

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

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

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

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

  1. 第一步
  • App.vue 中添加<audio></audio>标签
<!-- 全局音效 -->
<audio src="" id="eventAudio"></audio>
  1. 第二步
  • 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;
})

  1. 第三步

使用

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

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

 isPlayAudio(){
   this.playAudio()
 }

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

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

!!注意 !!

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # 传智播客vue 学习## 1. 什么是 Vue.js* Vue 开发手机 APP 需要借助于 Weex* Vu...
    再见天才阅读 3,685评论 0 6
  • vue概述 在官方文档中,有一句话对Vue的定位说的很明确:Vue.js 的核心是一个允许采用简洁的模板语法来声明...
    li4065阅读 7,282评论 0 25
  • 目录 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 UI组件 element★13489 ...
    余生社会阅读 20,129评论 7 233
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,556评论 1 11
  • VUE Vue :数据驱动的M V Vm框架 m :model(后台提供数据),v :view(页面),vM(模板...
    wudongyu阅读 5,441评论 0 11