vue项目播放本地音频和数据库音频

前期准备:vue项目,安装好了axios和mock,如果没有可以看我的博客全新vue项目使用mock

实现效果:点击按钮之后,可以播放音频,本地音频是放在vue项目里的,数据库音频是需要调用后端请求获得音频的(这里是获取mock中的base64音频数据)

vue项目vue-audio目录结果如下,其中我在public/static中放了2个音频文件

 

 

本地音频代码如下

<button type="button" @click="playLocalAudio">本地音频</button>
//本地音频,从public/static中取音频
    playLocalAudio() {
      const loacalUrl = `${location.protocol}//${location.host}/static/test1.mp3`
      new Audio(loacalUrl).play();
    },

数据库音频代码如下

<button type="button" @click="playDatabaseAudio">数据库音频</button>
//数据库音频,从数据库中取音频文件(这里是通过mock)
    playDatabaseAudio() {
      axios.get('/api/tests').then(response => {
        new Audio(response.data.value).play();
      });
    }

完整代码如下

<template>
  <div class="hello">
    <button type="button" @click="playLocalAudio">本地音频</button>
    <button type="button" @click="playDatabaseAudio">数据库音频</button>
  </div>
</template>

<script>
import axios from 'axios';
export default {
  name: 'HelloWorld',
  props: {
    msg: String
  },
  methods: {
    //本地音频,从public/static中取音频
    playLocalAudio() {
      const loacalUrl = `${location.protocol}//${location.host}/static/test1.mp3`
      new Audio(loacalUrl).play();
    },
    //数据库音频,从数据库中取音频文件(这里是通过mock)
    playDatabaseAudio() {
      axios.get('/api/tests').then(response => {
        new Audio(response.data.value).play();
      });
    }
  }
}
</script>

其中数据库音频获取的base64,需要在mock中定义(base64太大了,我这里就不贴出来了,可以在我的项目里看)

 

运行并打开网站,简单的2个按钮,实现不同的效果。网页上会播放音频,并显示耳机图标。

项目github地址:jjishugaochao/vue-audio: vue项目播放本地音频和数据库音频 (github.com)

posted on 2024-08-02 10:24  技术高超  阅读(396)  评论(0编辑  收藏  举报