在VUE中播放音频(audio介绍与使用)

一、audio标签简介

在HTML中我们可以使用audio标签播放音频,就像这样:

<audio controls>
  <source src="音频位置">
</audio>
属性描述
autoplayautoplay如果出现该属性,则音频在就绪后马上播放。
controlscontrols如果出现该属性,则向用户显示音频控件(比如播放/暂停按钮)。
looploop如果出现该属性,则每当音频结束时重新开始播放。
mutedmuted如果出现该属性,则音频输出为静音。
preloadauto
metadata
none
规定当网页加载时,音频是否默认被加载以及如何被加载。
srcURL规定音频文件的 URL。

上表抄自菜鸟教程,我们可以在audio标签中加入相应的属性来达到对应的效果。

同时,在HTML5中新增了audio对象,代表audio标签,让我们可以在JS中去控制audio。

它的属性和方法很多,见下表(同样式抄自菜鸟教程)

表1:audio属性

属性描述
audioTracks返回表示可用音频轨道的 AudioTrackList 对象
autoplay设置或返回是否在加载完成后随即播放音频
buffered返回表示音频已缓冲部分的 TimeRanges 对象
controller返回表示音频当前媒体控制器的 MediaController 对象
controls设置或返回音频是否显示控件(比如播放/暂停等)
crossOrigin设置或返回音频的 CORS 设置
currentSrc回当前音频的 URL
currentTime设置或返回音频中的当前播放位置(以秒计)
defaultMuted设置或返回音频默认是否静音
defaultPlaybackRate设置或返回音频的默认播放速度
duration返回当前音频的长度(以秒计)
ended返回音频的播放是否已结束
error返回表示音频错误状态的 MediaError 对象
loop设置或返回音频是否应在结束时重新播放
mediaGroup设置或返回音频所属的组合(用于连接多个音频元素)
muted设置或返回音频是否静音
networkState返回音频的当前网络状态
paused设置或返回音频是否暂停
playbackRate设置或返回音频播放的速度
played返回表示音频已播放部分的 TimeRanges 对象
preload设置或返回音频是否应该在页面加载后进行加载
readyState返回音频当前的就绪状态
seekable返回表示音频可寻址部分的 TimeRanges 对象
seeking返回用户是否正在音频中进行查找
src设置或返回音频元素的当前来源
textTracks返回表示可用文本轨道的 TextTrackList 对象
volume设置或返回音频的音量

表2:audio方法

方法描述
addTextTrack()在音频中添加一个新的文本轨道
canPlayType()检查浏览器是否可以播放指定的音频类型
fastSeek()在音频播放器中指定播放时间。
getStartDate()返回一个新的Date对象,表示当前时间轴偏移量
load()重新加载音频元素
play()开始播放音频
pause()暂停当前播放的音频

使用也很简单:

1.获取dom

2.操作

二、在VUE2中播放音频

1.直接使用AUDIO标签进行音频播放

 <audio controls ref="audio" class="aud">
    <source src="../static/audio/pojun1.mp3" />
  </audio>

2.使用JS播放音频,获取dom,使用play()

<template>
  <button class="butt" @click="bofang1">确认</button>
  <audio ref="audio" class="aud">
    <source src="../static/audio/pojun1.mp3" />
  </audio>
</template>
<script>
export default {
  data() {
    return {
      mp3url: "",
    }
  },
  name: "YinYue",
  components: {},
  methods: {
    bofang1() {
      let music1 = new Audio();
      music1 = require("../static/audio/pojun1.mp3");
      this.$refs.audio.src = music1;
      this.$refs.audio.play();
    },
  },
};
</script>

三、在vue3中播放音频

在vue3中加入了setup()所以获取虚拟dom稍稍有所不同。

<template>
  <audio ref="audio">
    <source src="../assets/audio/开头.mp3" type="audio/ogg" />
  </audio>
  <button @click="clickAudio()"></button>
</template>
<script setup lang="ts">
import { ref } from "vue";
const audio = ref();
const plays = () => {
  if (audio.value) {
    audio.value.play();
  }
};
const clickAudio = () => {
  plays();
};
</script>

四、在uniapp中播放音频

const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.src = '音频地址';
// 关闭自动播放
innerAudioContext.autoplay = false;
	const Click= () => {
		innerAudioContext.stop()
		innerAudioContext.play()
}

  • 19
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
以下是一个使用 Vue.js 控制 HTML5 音频按顺序播放的示例代码: ```html <template> <div> <audio ref="audio" controls @ended="playNext"> <source v-for="(src, index) in sources" :key="index" :src="src" type="audio/mpeg"> Your browser does not support the audio tag. </audio> </div> </template> <script> export default { data() { return { sources: ['audio1.mp3', 'audio2.mp3', 'audio3.mp3'], index: 0 }; }, methods: { playNext() { this.index++; // 播放索引加 1 if (this.index < this.sources.length) { this.$refs.audio.src = this.sources[this.index]; // 切换到下一个音频文件 this.$refs.audio.play(); // 播放音频 } } }, mounted() { this.$refs.audio.src = this.sources[this.index]; // 设置第一个音频文件的路径 this.$refs.audio.play(); // 播放第一个音频文件 } }; </script> ``` 这个代码示例,我们使用Vue.js 的 `ref` 属性来获取 `audio` 元素的引用,并使用 `v-for` 指令动态生成多个 `source` 元素以设置多个音频文件的路径。在 `data` 定义了一个 `sources` 数组来存储所有音频文件的路径,以及一个 `index` 变量来记录当前播放的是哪个音频文件。在 `methods` 定义了一个 `playNext` 方法,用于在监听到音频播放结束事件时切换到下一个音频文件并播放。在 `mounted` 生命周期钩子,我们设置了第一个音频文件的路径,并调用 `play()` 方法开始播放。 这个示例代码,只需要将所有音频文件的路径添加到 `sources` 数组即可,Vue.js 代码会自动按顺序播放这些音频文件。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值