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

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

问题描述

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

控制台报错内容

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

image.png

HTML

image.png

JS

image.png

阅读 8.5k
1 个回答
✓ 已被采纳

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题