一、audio标签简介
在HTML中我们可以使用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回当前音频的 URLcurrentTime设置或返回音频中的当前播放位置(以秒计)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标签进行音频播放
2.使用JS播放音频,获取dom,使用play()
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();
},
},
};
三、在vue3中播放音频
在vue3中加入了setup()所以获取虚拟dom稍稍有所不同。
import { ref } from "vue";
const audio = ref();
const plays = () => {
if (audio.value) {
audio.value.play();
}
};
const clickAudio = () => {
plays();
};
四、在uniapp中播放音频
const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.src = '音频地址';
// 关闭自动播放
innerAudioContext.autoplay = false;
const Click= () => {
innerAudioContext.stop()
innerAudioContext.play()
}