以下脚本从用户的麦克风读取音频,并在html Canvas 上渲染示波器。
来源来自mozilla开发人员网络的一个示例:Visualizations with Web Audio API
这是小提琴:http://jsfiddle.net/b7j8pktp/
mozGetUserMedia
(注意:代码没有针对不同浏览器的派生机制:仅适用于firefox)
它可以正常工作几秒钟,然后立即停止渲染。
而这是完全稳定的:http://mdn.github.io/voice-change-o-matic/
可以将问题简化为以下代码。麦克风激活图标(firefox地址栏中的旁边)在大约5秒钟后消失:
navigator.mozGetUserMedia({audio: true},
function() {}, function() {} );
(http://jsfiddle.net/b7j8pktp/2/)
最佳答案
这是Firefox中的已知错误。只需从getUserMedia调用中获取流并将其连接到窗口即可,如下所示:navigator.mozGetUserMedia({audio: true}, function(stream) { window.stream = stream; // rest of the code}, function err() { // handle error});
希望我们能尽快解决。问题是我们在执行AudioContext.createMediaStreamSource
调用时未能添加对流的引用,因此当getUserMedia
回调返回时,该流不再被任何东西引用,并且在运行时由循环收集器收集,也就是说,几秒钟后。
您可以在https://bugzilla.mozilla.org/show_bug.cgi?id=934512中跟随。
关于javascript - 扬声器输入示波器在几秒钟后停止渲染,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30808588/