javascript - 扬声器输入的示波器在几秒钟后停止渲染

标签 javascript animation audio canvas web-audio-api

以下脚本从用户的麦克风读取音频并在 html Canvas 上呈现示波器。

来源取自mozilla开发者网络的示例:Visualizations with Web Audio API

这是 fiddle :http://jsfiddle.net/b7j8pktp/

mozGetUserMedia

(注意:代码没有针对不同浏览器的 fork 机制:仅适用于 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) { 窗口.stream = 流; //其余代码 }, 函数错误() { //处理错误 });

希望我们能尽快修复它。问题是,当我们执行 AudioContext.createMediaStreamSource 调用时,我们无法添加对流的引用,因此当 getUserMedia 调用时,该流不再被任何内容引用。 > 回调返回,并在运行时(即几秒钟后)被循环收集器收集。

您可以在 https://bugzilla.mozilla.org/show_bug.cgi?id=934512 中关注.

关于javascript - 扬声器输入的示波器在几秒钟后停止渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30808588/

相关文章:

javascript - 如何将 JavaScript 值传递到输入字段

Java swing在计算时重新绘制: animating sorting algorithm

c++ - Qt Animate QPushButton 图标

html - 音频元素无法与 Safari 一起正常工作

javascript - 自动将来自 "company"的帖子发送到所述 "company"的 Facebook 页面

javascript - 选择器不能正常工作

c - 流搜索顺序对 ffmpeg av_seek_frame() 有影响吗?

linux - 通过命令行/管道或 API 更改语音性别

javascript - 如何使用 javascript 从上传的音频文件或音频文件 URL 创建 MediaStream?

javascript - 仅在为其 margin-left 设置动画时更改图像 Src