приветствую!
мне нужно перехватить callback oncomplete объекта OfflineAudioContex. Пытаюсь сделать вот так:
function audioRender() {
try {
var c;
if (window.OfflineAudioContext) {
if (c = new window.OfflineAudioContext(1, 44000, 44000), !c) {
return '0';
}
};
var osc = c.createOscillator();
var compress = c.createDynamicsCompressor();
osc.connect(compress);
compress.connect(c.destination);
osc.start(0);
c.startRendering();
c.oncomplete = function(g) {
сonsole.log('ON COMPLETE', g);
compress.disconnect();
};
} catch (u) {
}
}
// ==========================================================================
var audioHook = {
original: undefined,
hookFunc(g) {
alert('1');
console.log(g);
this.original(g);
}
}
Object.defineProperty(OfflineAudioContext.prototype, 'oncomplete', {
get: () => {
return oncomplete;
},
set: f => {
audioHook.original = f;
oncomplete = function(g) {
audioHook.hookFunc(g);
}
}
});
audioRender();
функция audioRender не моя и может быть любой, мне нужно чтобы после перекрытия oncomplete сначала вызывалась моя функция, а из неё оригинальный колбэк.
сеттер отрабатывает ок, но вот потом oncomplete не вызывается. Как правильно это сделать?