问题标签 [worklet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
598 浏览

javascript - 如何检查特定模块是否已添加到 Worklet?

我正在AudioWorkletNode使用它,要使用它,它需要您首先在audio_context.audioWorklet.


由于我的代码的模块化特性,我需要一种可靠的方法来防止处理器模块不必要的多次加载;如果.addModule已经对给定的AudioContext. 除了在对象上标记和标记之外trycatch还有其他方法吗?AudioContext

0 投票
0 回答
704 浏览

javascript - AudioWorklet 程序中的 bufferSize 导致声音有问题

我的程序正在ScriptProcessorNode使用AudioWorklet. 不幸的是,我没有服务器来测试它,但感谢Google Chrome Labs Audio Worklet Polyfill,我设法让它运行。无论如何,这个想法的目标是通过使用新的替换功能来重新创建与原始功能相似的功能ScriptProcessorNode(因为它现在已被弃用)AudioWorklet

这是代码:

scriptProcessingWorklet.js

ScriptProcessorNodePollyfill.js

问题是我让它工作,但设置一个 bufferSize 并没有输出一个很好的声音结果。当我测试它时, 128 可以bufferSize正常工作,但任何高于 128 的东西都会发出这种故障声音。

我知道问题是AudioWorkletProcessor.process()一次只能调用 128 个样本。我确实考虑过通过返回 true 或 false 来尝试使用活动源标志,但我意识到在阅读返回 false 的规范后不会再次调用 process() 方法。事实上,我不能通过脚本再次调用它来将活动标志从假转换为真。有没有人有任何想法?