#求助:JS中 使用new Audio() 音乐不播放的问题?

作者站长头像
站长
· 阅读数 16

求助:关于JS new Audio() 音乐播放的问题

问题描述

最近在做一个基于原生html的小程序玩,js里放了一首MP3,实际页面加载js文件的时候,音乐并不会播放,且控制台一直报错。网上查了一圈,介绍的方法基本都尝试了,还是不行。有了解这个情况的大佬请求解答一下,多谢

控制台报错内容

Uncaught (in promise) DOMException: Failed to load because no supported source was found.

#求助:JS中 使用new Audio() 音乐不播放的问题?

HTML

#求助:JS中 使用new Audio() 音乐不播放的问题?

JS

#求助:JS中 使用new Audio() 音乐不播放的问题?

回复
1个回答
avatar
test
2024-07-13

首先,你这个浏览器控制台报错的信息是没有加载到资源。其次,new Audio(url)如果提供了url,浏览器在返回新对象之前开始异步加载媒体资源。由于是加载音频资源是异步的,建议放到加载事件触发钩子函数里执行。

const music = new Audio('./1.mp3');
music.addEventListener("canplaythrough", event => {
  /* 音频可以播放;如果权限允许则播放 */
  music.play();
});

最后,如果还是不能播放(会有其他报错),则浏览器禁用了非用户交互的播放,可以加一个按钮,点击后在去触发播放。

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容