(Windows 7/64,FireFox 41.0.1)我有一个网络音频网络,它由连接到脚本节点的(实时麦克风)源组成,连接到目的地。如果我包含一个没有“onclick”脚本的按钮元素,则脚本节点(只执行“console.log”)将继续运行。如果我包含onclick脚本,则在执行脚本后,即使onclick脚本只是向控制台发送消息,脚本节点也不会再次被调用。如果没有onclick脚本,它可以工作;如果按钮调用onclick脚本,则不再调用脚本节点。以下是没有onclick脚本的FireBug控制台:
编辑:如果我在有一个onclick脚本时单击该按钮,则来自scriptNode的消息将停止。但是,如果我然后在scriptNode中放置一个断点,则会触发断点,表明调用了scriptNode。如果我然后删除断点并告诉FireBug继续,则脚本节点将继续显示其消息,直到我再次按下该按钮。
以下是没有onclick脚本的输出: 144 scriptNode.onaudioprocess bug.html(第35行) (伯爵继续增长)
以下是带有onclick脚本的输出:
df[c('test', 'value')] <- t(apply(df, 1, function(x) {
i1 <- which(x[1:5]>x[6])[1]
c(i1, x[i1])}))
(没有进一步的输出)
这是整个代码。谁能告诉我哪里出错了?
36 scriptNode.onaudioprocess bug.html (line 35)
hello bug.html (line 62)
答案 0 :(得分:0)
至少使用这个版本的Firefox,调用“onclick”脚本会导致某些将AudioContext状态更改为“暂停”,从而停止任何进一步的音频处理。设置断点,等待中断,然后继续执行,导致AudioContext状态恢复为“正在运行”,音频处理将恢复。为了我的目的,我现在包括这个功能
audioContext.onstatechange = function() {
if (audioContext.state === "suspended") {
audioContext.resume();
}
}
这个黑客似乎解决了我的问题。希望它也可以帮助别人。