使用标签形式
<audio id="myaudio" src="/static/声音/机械警报.wav" loop="loop" preload="preload" muted="muted" />
使用js代码播放
let mp3 = new Audio('/static/声音/机械警报.wav') // 创建音频对象
mp3.loop = true
mp3.play() // 播放
附带Audio监听事件
// true - 事件句柄在捕获阶段执行
// false - 默认。事件句柄在冒泡阶段执行
audio.addEventListener('loadstart', function () {
console.log("客户端开始请求数据");
}, false);
audio.addEventListener('progress', function () {
console.log("客户端正在请求数据");
}, false);
audio.addEventListener('error', function () {
console.log("请求数据时遇到错误 ");
}, false);
audio.addEventListener('stalled', function () {
console.log("网速失速 ");
}, false);
audio.addEventListener('play', function () {
console.log("play()和autoplay开始播放时触发 ");
}, false);
audio.addEventListener('pause', function () {
console.log("暂停触发");
}, false);
audio.addEventListener('loadedmetadata', function () {
console.log("当指定的音频/视频的元数据已加载时");
}, false);
audio.addEventListener('loadeddata', function () {
console.log("当当前帧的数据已加载,但没有足够的数据来播放指定音频/视频的下一帧时,会发生 loadeddata 事件。");
}, false);
audio.addEventListener('waiting', function () {
console.log("等待数据,并非错误");
}, false);
audio.addEventListener('playing', function () {
console.log("正在播放时触发。");
}, false);
audio.addEventListener('canplay', function () {
console.log("可以播放,但中途可能因为加载而暂停");
}, false);
audio.addEventListener('canplaythrough', function () {
console.log("可以播放,歌曲全部加载完毕");
}, false);
audio.addEventListener('seeking', function () {
console.log("当用户开始移动/跳跃到音频/视频中的新位置时");
}, false);
audio.addEventListener('seeked', function () {
console.log("当用户已移动/跳跃到音频/视频中的新位置时");
}, false);
audio.addEventListener('timeupdate', function () {
console.log("播放时间改变");
}, false);
audio.addEventListener('ended', function () {
console.log("播放结束");
}, false);
audio.addEventListener('ratechange', function () {
console.log("播放速率改变");
}, false);
audio.addEventListener('durationchange', function () {
console.log("资源长度改变");
}, false);
audio.addEventListener('volumechange', function () {
console.log("音量改变");
}, false);
完
路过的朋友们,有用赏个赞吧