From 58c7f8a1325f5e8307b1c64d8a44e2d025f62c3f Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Sat, 18 Jun 2022 23:52:08 +0200 Subject: [PATCH] reset the decoder if it errors --- htdocs/lib/AudioEngine.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/htdocs/lib/AudioEngine.js b/htdocs/lib/AudioEngine.js index 5d754c2..7924cf8 100644 --- a/htdocs/lib/AudioEngine.js +++ b/htdocs/lib/AudioEngine.js @@ -424,17 +424,24 @@ ImaAdpcmCodec.prototype.decodeNibble = function(nibble) { }; function OpusCodec(callback) { - this.decoder = new AudioDecoder({ + this.callback = callback; + this.resetDecoder(); +} + +OpusCodec.prototype.resetDecoder = function() { + var me = this; + me.decoder = new AudioDecoder({ output: function(audioData) { var buffer = new Float32Array(audioData.numberOfFrames * audioData.numberOfChannels); audioData.copyTo(buffer, {planeIndex: 0}); - callback(buffer); + me.callback(buffer); }, error: function(e) { console.error(e); + me.resetDecoder(); } }); - this.decoder.configure({ + me.decoder.configure({ codec: "opus", sampleRate: 12000, numberOfChannels: 1