我正在尝试编写一个挂钩到WebAudio的Firefox扩展程序并添加一个' master-gain'所有的AudioContexts。
我试图通过覆盖window
命名空间中的AudioContext构造函数来做到这一点。这样,当用户尝试访问destination
时,我可以返回GainNode(内部连接到destination
)。这是一个黑客,但我认为它可能有用。
我目前正努力将我的newAudioContext
构造函数从插件脚本(特权范围)导出到页面脚本(权限较低)。
我试过......
unsafeWindow.AudioContext = cloneInto(newAudioContext,unsafeWindow);
但我仍然在页面脚本中获得原始的AudioContext。
我也试过
exportFunction(newAudioContext, unsafeWindow, {defineAs: "AudioContext"});
但是将其导出为函数而不是构造函数。
我理解结构化克隆有局限性,但我是否有其他方法可以覆盖来自AddOn的window.AudioContext?