扬声器输入的示波器在几秒钟后停止渲染
oscilloscope of speaker input stops rendering after a few seconds
以下脚本从用户麦克风读取音频,并在 html 画布上呈现示波器。
源代码取自 Mozilla 开发者网络的示例:使用 Web 音频 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 中跟随。
- 可以't将几个数字设置为<输入类型=“;数字“>
- 在控制器中将输入类型时间更改为秒
- 淡入淡出每隔几秒就会发生变化的图像
- 在jQuery中使用单个输入来设置几个不同选项的值
- 当我触发一个事件时,它会被触发几次,而不是在jQuery中的输入时触发一次
- 在画布上显示字符串仅显示几分之一秒
- 用户未输入几行时的 JavaScript 计算(添加剩余的行值)
- 从用户输入的时间中减去秒数
- 使用用户输入值从 DOM 中删除几个元素
- 输入栏在几个塞昆德后消失
- HTML5 -视频播放时每隔几秒触发一次事件
- 使用JavaScript在视频结束前几秒运行一个函数
- 反应-每隔几秒渲染相对时间
- 显示前的几秒延迟:无
- PHP Javascript AJAX填充和计算几个输入字段-只有一个函数填充
- 添加数字里面几个输入(类型=数字)后,点击按钮
- 如何使用jquery在数组中选择几个输入值
- 动态添加/删除几个输入字段
- 使用socket.io每隔几秒以编程方式触发一个事件
- 在每隔几秒播放的动画中添加声音