You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS调用Audio.play()播放外部音频报无支持源DOMException如何解决

问题根因

你传入Audio构造函数的https://soundcloud.com/saba-a-744718954/tick-1是SoundCloud的网页播放页面地址,并非浏览器可直接解码的音频资源文件,浏览器无法将HTML页面识别为合法媒体源,因此触发对应报错。此外你提供的代码中缺少button元素的获取逻辑,如果没有提前定义button变量也会触发额外报错。

修复方案
  • 替换为合法音频直链:需要获取该音频的实际资源地址,必须是.mp3/.wav/.ogg等浏览器支持的音频格式的直链,不可直接使用音频平台的分享页面链接。
  • 确认跨域配置:音频资源的服务端必须配置正确的CORS响应头,允许你的站点跨域访问该资源,否则即使拿到直链也会被浏览器同源策略拦截。
  • 优化播放异常捕获:Audio.play()方法返回Promise,建议添加异常捕获逻辑避免未处理的Promise报错,修复后的参考代码如下:
// 此处替换为实际的音频直链地址
const sound = new Audio("https://example.com/xxx/tick.mp3");
// 补充button元素的获取逻辑
const button = document.querySelector("button");

button.addEventListener("click", soundHandler);

async function soundHandler() {
  try {
    await sound.play();
  } catch (error) {
    console.error("音频播放失败:", error);
  }
}

内容的提问来源于stack exchange,提问作者Saba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:06:02