vue使用audio 音频实现播放与关闭(可用于收到消息给提示音效)

这次项目中因为对接了即时通讯 IM,有个需求就是收到消息需要有个提示音效,所以这里就想到了用HTML5 提供的Audio 标签,用起来也是很方便,首先让产品给你个提示音效,然后你放在项目中,使用Audio 标签,然后引入这段提示音效即可,后续的操作也是我下面的代码,直接复制即可。

具体内容参考W3C详细文档:http://www.w3school.com.cn/jsref/dom_obj_audio.asp

html 复制代码
<template>
    <audio id="notionAudio" src="@/assets/audio/notionAudio.mp3" style="display:none;"></audio>
	<el-button @click="playNotionAudio">开启音频</el-button>
	<el-button @click="pauseNotionAudio">关闭音频</el-button>
</template>
<script>
export default {
  data() {
    return {
      is_open_audio: false, // 是否开启声音提示
    };
  },
  methods: {
  	// 如果你也想在收到消息的时候播放提示音效,在收到消息回调的方法里面执行这个方法(playNotionAudio)即可。
	playNotionAudio() {
        const audio = document.getElementById('notionAudio');
        if (audio) {
          audio.play().then(() => {
          console.log('播放成功');
          this.is_open_audio = true;
        }).catch(function(error) {
          console.log("播放失败,用户需要进行交互以播放音频: ", error);
        });
      } 
    },
    pauseNotionAudio() {
      // pause()方法只是暂停,这里还需要重新load,然后需要再次play,音乐就可重头播放。
      const audio = document.getElementById('notionAudio');
      if (audio) {
        audio.pause();
        audio.load();
        this.is_open_audio = false;
      } 
    }, 
  },
} 
</script>
相关推荐
m0_748254882 分钟前
DataX3.0+DataX-Web部署分布式可视化ETL系统
前端·分布式·etl
ZJ_.14 分钟前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
GIS开发特训营18 分钟前
Vue零基础教程|从前端框架到GIS开发系列课程(七)响应式系统介绍
前端·vue.js·前端框架·gis开发·webgis·三维gis
Cachel wood44 分钟前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
学代码的小前端1 小时前
0基础学前端-----CSS DAY9
前端·css
joan_851 小时前
layui表格templet图片渲染--模板字符串和字符串拼接
前端·javascript·layui
m0_748236111 小时前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust
Watermelo6172 小时前
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
开发语言·前端·javascript·算法·数据挖掘·数据分析·ecmascript
m0_748248942 小时前
HTML5系列(11)-- Web 无障碍开发指南
前端·html·html5
m0_748235612 小时前
从零开始学前端之HTML(三)
前端·html