【问题标题】:web audio in firefoxFirefox 中的网络音频
【发布时间】:2024-04-17 23:00:02
【问题描述】:

我正在尝试构建一个可视化和控制源音频的网络应用程序,它在 chrome 中运行良好,但在 Firefox 中完全中断,它甚至不会播放音频。这是代码:

var audio = new Audio();
audio.src='track.mp3';
audio.controls = true;
audio.loop = false;
audio.autoplay = false;


window.addEventListener("load", initPlayer, false);

function initPlayer(){
  $("#player").append(audio);

  context = new AudioContext();
  analyser = context.createAnalyser();
  canvas = document.getElementById("vis");;
  ctx = canvas.getContext("2d");

  source = context.createMediaElementSource(audio);
  source.connect(analyser);
  analyser.connect(context.destination);

}

打破一切的那一行是:

  source = context.createMediaElementSource(audio);

添加此行后,播放器会在 0:00 在 Firefox 中挂起。我已经完成了研究并遇到了 CORS,但据我所知,这应该是无关紧要的,因为文件保存在同一台服务器上。

请帮忙

【问题讨论】:

  • 当您说“破坏一切”时,是否意味着抛出错误?如果是这样,错误信息是什么?
  • 根本没有抛出错误,它甚至可以看到文件,只是不会播放声音,并且在点击播放时处于 0:00

标签: javascript firefox web-audio-api


【解决方案1】:

您必须通过服务器正确地提供音频以便设置 MIME 类型,因此请从 localhost 而不是 file:///..../track.mp3 运行它

【讨论】:

  • 感谢您的回答,能否详细说明如何实施?
  • 取决于您的服务器,一般的 MAMP/LAMP/WAMP 设置可能应该这样做。
【解决方案2】:

我们曾经在 Firefox 中遇到过一个错误,即 MediaElementSourceNode 在某些情况下无法正常工作。它现在已修复(我相信在撰写本文时,Aurora 和 Nightly 中已修复)。

对此感到抱歉。

【讨论】:

  • 你好,谢谢你的回答,我都试过了,夜间和极光,他们都拒绝播放任何东西。
  • 那么,恐怕我需要一个最小的测试用例来调查它。您能否提供一个网页,显示哪些内容在 Firefox 中不起作用而在 Chrome 中起作用?
最近更新 更多