Audio HTML5麦克风捕获在Firefox中5秒后停止

Audio HTML5麦克风捕获在Firefox中5秒后停止,audio,web-audio-api,getusermedia,Audio,Web Audio Api,Getusermedia,我使用getUserMedia()函数从麦克风捕获音频输入,在chrome中工作正常,但在firefox中,声音在5秒钟后消失。如果我再次发送麦克风请求(不重新加载页面),同样的事情也会发生。以下是代码(我用作指导): 有什么想法吗 编辑/更新 谢谢你,csch,作为参考。Karoun Kasraie的解决方案成功了 context = new AudioContext(); navigator.getUserMedia({ audio: true }, function(stream) {

我使用getUserMedia()函数从麦克风捕获音频输入,在chrome中工作正常,但在firefox中,声音在5秒钟后消失。如果我再次发送麦克风请求(不重新加载页面),同样的事情也会发生。以下是代码(我用作指导):

有什么想法吗


编辑/更新 谢谢你,csch,作为参考。Karoun Kasraie的解决方案成功了

context = new AudioContext();

navigator.getUserMedia({ audio: true }, function(stream) {
  // the important thing is to save a reference to the MediaStreamAudioSourceNode
  // thus, *window*.source or any other object reference will do
  window.source = context.createMediaStreamSource(stream);
  source.connect(context.destination);
}, alert);

这是Firefox中的一个bug,可以在这里找到:

还有一个解决办法:

context=newaudiocontext();
getUserMedia({audio:true},函数(流){
//重要的是保存对MediaStreamAudioSourceNode的引用
//因此,*window*.source或任何其他对象引用都可以
window.source=context.createMediaStreamSource(流);
source.connect(context.destination);
},警觉);

我在这里看到了同样的问题!虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能会变得无效。这种解决方法是否仍然适用于firefox 33中的任何人?我的回叫一结束,麦克风就停止录音。@ThrowsException我刚刚测试过,它就工作了。最好指出错误的发生是因为源代码是垃圾收集的。谢谢,效果很好。到目前为止,这个bug仍然存在,并且面临着一个类似的问题,上面的解决方法对我来说并不真正有效,因为看起来这个问题与我的Android版本有关
context = new AudioContext();

navigator.getUserMedia({ audio: true }, function(stream) {
  // the important thing is to save a reference to the MediaStreamAudioSourceNode
  // thus, *window*.source or any other object reference will do
  window.source = context.createMediaStreamSource(stream);
  source.connect(context.destination);
}, alert);