以下脚本从用户的麦克风读取音频并在html画布上呈现示波器。
源代码来自mozilla开发人员网络的一个示例:Visualizations with Web Audio API
这是小提琴:http://jsfiddle.net/b7j8pktp/
mozGetUserMedia
(注意:代码没有针对不同浏览器的fork机制:仅适用于firefox)
它可以正常工作几秒钟,然后立即停止渲染。
虽然这完全稳定:http://mdn.github.io/voice-change-o-matic/
问题可以简化为以下代码。麦克风激活图标(在firefox中的地址栏旁边)在大约5秒钟后消失:
navigator.mozGetUserMedia({audio: true},
function() {}, function() {} );
答案 0 :(得分:1)
这是Firefox中的已知错误。只需从getUserMedia调用中获取流并将其连接到窗口,如下所示:
navigator.mozGetUserMedia({audio: true}, function(stream) {
window.stream = stream;
// rest of the code
}, function err() {
// handle error
});
希望我们能尽快修复它。问题是,当我们执行AudioContext.createMediaStreamSource
调用时,我们无法添加对流的引用,因此当getUserMedia
回调返回时,流不再被任何内容引用,并且它循环收集器在运行时收集,即几秒钟后收集。