speechrecorderng 3.3.0 → 3.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2548,6 +2548,7 @@ class AudioPlayer {
2548
2548
  return this._stopAction;
2549
2549
  }
2550
2550
  set audioClip(audioClip) {
2551
+ this._audioClip = audioClip;
2551
2552
  let length = 0;
2552
2553
  let chs = 0;
2553
2554
  if (audioClip && audioClip.audioDataHolder) {
@@ -2570,7 +2571,6 @@ class AudioPlayer {
2570
2571
  else {
2571
2572
  this.audioSource = null;
2572
2573
  }
2573
- this._audioClip = audioClip;
2574
2574
  }
2575
2575
  get audioSource() {
2576
2576
  return this._audioSource;
@@ -3206,9 +3206,9 @@ class AudioCapture {
3206
3206
  this._recUUID = UUID.generate();
3207
3207
  }
3208
3208
  this.persistError = null;
3209
- console.info("Audio capture initialize storage for type: " + this._audioStorageType);
3209
+ //console.debug("Audio capture initialize storage for type: "+this._audioStorageType);
3210
3210
  if (AudioStorageType.DB_CHUNKED === this._audioStorageType && this._persistentAudioStorageTarget && this._recUUID) {
3211
- console.debug("Create indexed db audio buffer.");
3211
+ //console.debug("Create indexed db audio buffer.");
3212
3212
  this.inddbAudioBuffer = new IndexedDbAudioBuffer(this._persistentAudioStorageTarget, this.channelCount, this.currentSampleRate, AudioCapture.BUFFER_SIZE, 0, this._recUUID);
3213
3213
  }
3214
3214
  if (!(AudioStorageType.NET_CHUNKED === this._audioStorageType)) {
@@ -13031,7 +13031,7 @@ class SessionManager extends BasicRecorder {
13031
13031
  this.transportActions.fwdAction.disabled = true;
13032
13032
  this.transportActions.fwdNextAction.disabled = true;
13033
13033
  this.transportActions.bwdAction.disabled = true;
13034
- this.displayRecFile = null;
13034
+ this.updateDisplayRecFile(null);
13035
13035
  this.displayRecFileVersion = 0;
13036
13036
  this.displayAudioClip = null;
13037
13037
  this.liveLevelDisplay.reset(true);
@@ -13129,6 +13129,9 @@ class SessionManager extends BasicRecorder {
13129
13129
  }
13130
13130
  set displayRecFile(displayRecFile) {
13131
13131
  this._displayRecFile = displayRecFile;
13132
+ }
13133
+ updateDisplayRecFile(displayRecFile, fetchAndApplyRecordingFile = true) {
13134
+ this.displayRecFile = displayRecFile;
13132
13135
  if (this._displayRecFile) {
13133
13136
  if (this.items) {
13134
13137
  this.items.currentRecordingFile = this._displayRecFile;
@@ -13145,47 +13148,88 @@ class SessionManager extends BasicRecorder {
13145
13148
  if (this.controlAudioPlayer) {
13146
13149
  this.controlAudioPlayer.audioClip = null;
13147
13150
  }
13148
- if (this._controlAudioPlayer && this._session) {
13149
- //... and try to fetch from server
13150
- this.liveLevelDisplayState = State.LOADING;
13151
- const rf = this._displayRecFile;
13152
- let audioDownloadType = this._clientAudioStorageType;
13153
- if (AudioStorageType.MEM_ENTIRE_AUTO_NET_CHUNKED === this._clientAudioStorageType || AudioStorageType.MEM_CHUNKED_AUTO_NET_CHUNKED === this._clientAudioStorageType) {
13154
- // Default is network mode
13155
- audioDownloadType = AudioStorageType.NET_CHUNKED;
13156
- if (rf.channels && rf.frames) {
13157
- const samples = rf.channels * rf.frames;
13158
- if (samples <= this._maxAutoNetMemStoreSamples) {
13159
- // But if audio file is small, load in continuous resp. chunked mode
13160
- if (AudioStorageType.MEM_ENTIRE_AUTO_NET_CHUNKED === this._clientAudioStorageType) {
13161
- audioDownloadType = AudioStorageType.MEM_ENTIRE;
13162
- }
13163
- else if (AudioStorageType.MEM_CHUNKED_AUTO_NET_CHUNKED === this._clientAudioStorageType) {
13164
- audioDownloadType = AudioStorageType.MEM_CHUNKED;
13151
+ if (fetchAndApplyRecordingFile) {
13152
+ if (this._controlAudioPlayer && this._session) {
13153
+ //... and try to fetch from server
13154
+ this.liveLevelDisplayState = State.LOADING;
13155
+ const rf = this._displayRecFile;
13156
+ let audioDownloadType = this._clientAudioStorageType;
13157
+ if (AudioStorageType.MEM_ENTIRE_AUTO_NET_CHUNKED === this._clientAudioStorageType || AudioStorageType.MEM_CHUNKED_AUTO_NET_CHUNKED === this._clientAudioStorageType) {
13158
+ // Default is network mode
13159
+ audioDownloadType = AudioStorageType.NET_CHUNKED;
13160
+ if (rf.channels && rf.frames) {
13161
+ const samples = rf.channels * rf.frames;
13162
+ if (samples <= this._maxAutoNetMemStoreSamples) {
13163
+ // But if audio file is small, load in continuous resp. chunked mode
13164
+ if (AudioStorageType.MEM_ENTIRE_AUTO_NET_CHUNKED === this._clientAudioStorageType) {
13165
+ audioDownloadType = AudioStorageType.MEM_ENTIRE;
13166
+ }
13167
+ else if (AudioStorageType.MEM_CHUNKED_AUTO_NET_CHUNKED === this._clientAudioStorageType) {
13168
+ audioDownloadType = AudioStorageType.MEM_CHUNKED;
13169
+ }
13165
13170
  }
13166
13171
  }
13167
13172
  }
13168
- }
13169
- console.debug("Audio download type: " + audioDownloadType);
13170
- if (AudioStorageType.DB_CHUNKED === this._clientAudioStorageType) {
13171
- // Fetch chunked indexed db audio buffer
13172
- let nextIab = null;
13173
- if (!this._persistentAudioStorageTarget) {
13174
- throw Error('Error: Persistent storage target not set.');
13173
+ console.debug("Audio download type: " + audioDownloadType);
13174
+ if (AudioStorageType.DB_CHUNKED === this._clientAudioStorageType) {
13175
+ // Fetch chunked indexed db audio buffer
13176
+ let nextIab = null;
13177
+ if (!this._persistentAudioStorageTarget) {
13178
+ throw Error('Error: Persistent storage target not set.');
13179
+ }
13180
+ else {
13181
+ //console.debug("Fetch audio and store to indexed db...");
13182
+ this.audioFetchSubscription = this.recFileService.fetchSprRecordingFileIndDbAudioBuffer(this._controlAudioPlayer.context, this._persistentAudioStorageTarget, this._session.project, rf).subscribe({
13183
+ next: (iab) => {
13184
+ //console.debug("Sessionmanager: Received inddb audio buffer: "+iab);
13185
+ nextIab = iab;
13186
+ },
13187
+ complete: () => {
13188
+ this.liveLevelDisplayState = State.READY;
13189
+ let fabDh = null;
13190
+ if (nextIab) {
13191
+ if (rf && this.items) {
13192
+ fabDh = new AudioDataHolder(nextIab);
13193
+ this.items.setSprRecFileAudioData(rf, fabDh);
13194
+ }
13195
+ }
13196
+ else {
13197
+ // Should actually be handled by the error resolver
13198
+ this.statusMsg = 'Recording file could not be loaded.';
13199
+ this.statusAlertType = 'error';
13200
+ }
13201
+ if (fabDh) {
13202
+ // this.displayAudioClip could have been changed meanwhile, but the recorder unsubcribes before changing the item, therefore there should be no risk to set to wrong item
13203
+ this.displayAudioClip = new AudioClip(fabDh);
13204
+ }
13205
+ this.controlAudioPlayer.audioClip = this.displayAudioClip;
13206
+ this.showRecording();
13207
+ },
13208
+ error: err => {
13209
+ console.error("Could not load recording file from server: " + err);
13210
+ this.liveLevelDisplayState = State.READY;
13211
+ this.statusMsg = 'Recording file could not be loaded: ' + err;
13212
+ this.statusAlertType = 'error';
13213
+ this.changeDetectorRef.detectChanges();
13214
+ }
13215
+ });
13216
+ }
13175
13217
  }
13176
- else {
13177
- //console.debug("Fetch audio and store to indexed db...");
13178
- this.audioFetchSubscription = this.recFileService.fetchSprRecordingFileIndDbAudioBuffer(this._controlAudioPlayer.context, this._persistentAudioStorageTarget, this._session.project, rf).subscribe({
13179
- next: (iab) => {
13180
- //console.debug("Sessionmanager: Received inddb audio buffer: "+iab);
13181
- nextIab = iab;
13218
+ else if (AudioStorageType.NET_CHUNKED === audioDownloadType) {
13219
+ // Fetch chunked audio buffer from network
13220
+ let nextNetAb = null;
13221
+ //console.debug("Fetch chunked audio from network");
13222
+ this.audioFetchSubscription = this.recFileService.fetchSprRecordingFileNetAudioBuffer(this._controlAudioPlayer.context, this._session.project, rf).subscribe({
13223
+ next: (netAb) => {
13224
+ //console.debug("Sessionmanager: Received net audio buffer: "+netAb);
13225
+ nextNetAb = netAb;
13182
13226
  },
13183
13227
  complete: () => {
13184
13228
  this.liveLevelDisplayState = State.READY;
13185
13229
  let fabDh = null;
13186
- if (nextIab) {
13230
+ if (nextNetAb) {
13187
13231
  if (rf && this.items) {
13188
- fabDh = new AudioDataHolder(nextIab);
13232
+ fabDh = new AudioDataHolder(nextNetAb);
13189
13233
  this.items.setSprRecFileAudioData(rf, fabDh);
13190
13234
  }
13191
13235
  }
@@ -13196,6 +13240,7 @@ class SessionManager extends BasicRecorder {
13196
13240
  }
13197
13241
  if (fabDh) {
13198
13242
  // this.displayAudioClip could have been changed meanwhile, but the recorder unsubcribes before changing the item, therefore there should be no risk to set to wrong item
13243
+ //console.debug("set displayRecFile(): fetch net ab complete, set displayAudioClip.")
13199
13244
  this.displayAudioClip = new AudioClip(fabDh);
13200
13245
  }
13201
13246
  this.controlAudioPlayer.audioClip = this.displayAudioClip;
@@ -13210,126 +13255,86 @@ class SessionManager extends BasicRecorder {
13210
13255
  }
13211
13256
  });
13212
13257
  }
13213
- }
13214
- else if (AudioStorageType.NET_CHUNKED === audioDownloadType) {
13215
- // Fetch chunked audio buffer from network
13216
- let nextNetAb = null;
13217
- //console.debug("Fetch chunked audio from network");
13218
- this.audioFetchSubscription = this.recFileService.fetchSprRecordingFileNetAudioBuffer(this._controlAudioPlayer.context, this._session.project, rf).subscribe({
13219
- next: (netAb) => {
13220
- //console.debug("Sessionmanager: Received net audio buffer: "+netAb);
13221
- nextNetAb = netAb;
13222
- },
13223
- complete: () => {
13224
- this.liveLevelDisplayState = State.READY;
13225
- let fabDh = null;
13226
- if (nextNetAb) {
13227
- if (rf && this.items) {
13228
- fabDh = new AudioDataHolder(nextNetAb);
13229
- this.items.setSprRecFileAudioData(rf, fabDh);
13258
+ else if (AudioStorageType.MEM_CHUNKED === audioDownloadType) {
13259
+ // Fetch chunked array audio buffer
13260
+ let nextAab = null;
13261
+ //console.debug("Fetch audio and store to (chunked) array buffer...");
13262
+ this.audioFetchSubscription = this.recFileService.fetchSprRecordingFileArrayAudioBuffer(this._controlAudioPlayer.context, this._session.project, rf).subscribe({
13263
+ next: (aab) => {
13264
+ nextAab = aab;
13265
+ },
13266
+ complete: () => {
13267
+ this.liveLevelDisplayState = State.READY;
13268
+ let fabDh = null;
13269
+ if (nextAab) {
13270
+ if (rf && this.items) {
13271
+ fabDh = new AudioDataHolder(nextAab);
13272
+ this.items.setSprRecFileAudioData(rf, fabDh);
13273
+ }
13230
13274
  }
13231
- }
13232
- else {
13233
- // Should actually be handled by the error resolver
13234
- this.statusMsg = 'Recording file could not be loaded.';
13235
- this.statusAlertType = 'error';
13236
- }
13237
- if (fabDh) {
13238
- // this.displayAudioClip could have been changed meanwhile, but the recorder unsubcribes before changing the item, therefore there should be no risk to set to wrong item
13239
- //console.debug("set displayRecFile(): fetch net ab complete, set displayAudioClip.")
13240
- this.displayAudioClip = new AudioClip(fabDh);
13241
- }
13242
- this.controlAudioPlayer.audioClip = this.displayAudioClip;
13243
- this.showRecording();
13244
- },
13245
- error: err => {
13246
- console.error("Could not load recording file from server: " + err);
13247
- this.liveLevelDisplayState = State.READY;
13248
- this.statusMsg = 'Recording file could not be loaded: ' + err;
13249
- this.statusAlertType = 'error';
13250
- this.changeDetectorRef.detectChanges();
13251
- }
13252
- });
13253
- }
13254
- else if (AudioStorageType.MEM_CHUNKED === audioDownloadType) {
13255
- // Fetch chunked array audio buffer
13256
- let nextAab = null;
13257
- //console.debug("Fetch audio and store to (chunked) array buffer...");
13258
- this.audioFetchSubscription = this.recFileService.fetchSprRecordingFileArrayAudioBuffer(this._controlAudioPlayer.context, this._session.project, rf).subscribe({
13259
- next: (aab) => {
13260
- nextAab = aab;
13261
- },
13262
- complete: () => {
13263
- this.liveLevelDisplayState = State.READY;
13264
- let fabDh = null;
13265
- if (nextAab) {
13266
- if (rf && this.items) {
13267
- fabDh = new AudioDataHolder(nextAab);
13268
- this.items.setSprRecFileAudioData(rf, fabDh);
13275
+ else {
13276
+ // Should actually be handled by the error resolver
13277
+ this.statusMsg = 'Recording file could not be loaded.';
13278
+ this.statusAlertType = 'error';
13269
13279
  }
13270
- }
13271
- else {
13272
- // Should actually be handled by the error resolver
13273
- this.statusMsg = 'Recording file could not be loaded.';
13280
+ if (fabDh) {
13281
+ // this.displayAudioClip could have been changed meanwhile, but the recorder unsubcribes before changing the item, therefore there should be no risk to set to wrong item
13282
+ this.displayAudioClip = new AudioClip(fabDh);
13283
+ }
13284
+ this.controlAudioPlayer.audioClip = this.displayAudioClip;
13285
+ this.showRecording();
13286
+ },
13287
+ error: err => {
13288
+ console.error("Could not load recording file from server: " + err);
13289
+ this.liveLevelDisplayState = State.READY;
13290
+ this.statusMsg = 'Recording file could not be loaded: ' + err;
13274
13291
  this.statusAlertType = 'error';
13275
13292
  }
13276
- if (fabDh) {
13277
- // this.displayAudioClip could have been changed meanwhile, but the recorder unsubcribes before changing the item, therefore there should be no risk to set to wrong item
13278
- this.displayAudioClip = new AudioClip(fabDh);
13279
- }
13280
- this.controlAudioPlayer.audioClip = this.displayAudioClip;
13281
- this.showRecording();
13282
- },
13283
- error: err => {
13284
- console.error("Could not load recording file from server: " + err);
13285
- this.liveLevelDisplayState = State.READY;
13286
- this.statusMsg = 'Recording file could not be loaded: ' + err;
13287
- this.statusAlertType = 'error';
13288
- }
13289
- });
13290
- }
13291
- else {
13292
- // Fetch regular audio buffer
13293
- //console.debug("Fetch audio and store to audio buffer...");
13294
- this.audioFetchSubscription = this.recFileService.fetchSprRecordingFileAudioBuffer(this._controlAudioPlayer.context, this._session.project, rf).subscribe({
13295
- next: (ab) => {
13296
- this.liveLevelDisplayState = State.READY;
13297
- let fabDh = null;
13298
- if (ab) {
13299
- if (rf && this.items) {
13300
- if (SessionManager.FORCE_ARRRAY_AUDIO_BUFFER) {
13301
- let aab = ArrayAudioBuffer.fromAudioBuffer(ab);
13302
- fabDh = new AudioDataHolder(aab);
13303
- }
13304
- else {
13305
- fabDh = new AudioDataHolder(new AudioBufferSource(ab));
13293
+ });
13294
+ }
13295
+ else {
13296
+ // Fetch regular audio buffer
13297
+ //console.debug("Fetch audio and store to audio buffer...");
13298
+ this.audioFetchSubscription = this.recFileService.fetchSprRecordingFileAudioBuffer(this._controlAudioPlayer.context, this._session.project, rf).subscribe({
13299
+ next: (ab) => {
13300
+ this.liveLevelDisplayState = State.READY;
13301
+ let fabDh = null;
13302
+ if (ab) {
13303
+ if (rf && this.items) {
13304
+ if (SessionManager.FORCE_ARRRAY_AUDIO_BUFFER) {
13305
+ let aab = ArrayAudioBuffer.fromAudioBuffer(ab);
13306
+ fabDh = new AudioDataHolder(aab);
13307
+ }
13308
+ else {
13309
+ fabDh = new AudioDataHolder(new AudioBufferSource(ab));
13310
+ }
13311
+ this.items.setSprRecFileAudioData(rf, fabDh);
13306
13312
  }
13307
- this.items.setSprRecFileAudioData(rf, fabDh);
13308
13313
  }
13309
- }
13310
- else {
13311
- // Should actually be handled by the error resolver
13312
- this.statusMsg = 'Recording file could not be loaded.';
13314
+ else {
13315
+ // Should actually be handled by the error resolver
13316
+ this.statusMsg = 'Recording file could not be loaded.';
13317
+ this.statusAlertType = 'error';
13318
+ }
13319
+ if (fabDh) {
13320
+ // this.displayAudioClip could have been changed meanwhile, but the recorder unsubcribes before changing the item, therefore there should be no risk to set to wrong item
13321
+ this.displayAudioClip = new AudioClip(fabDh);
13322
+ }
13323
+ this.controlAudioPlayer.audioClip = this.displayAudioClip;
13324
+ this.showRecording();
13325
+ }, error: err => {
13326
+ console.error("Could not load recording file from server: " + err);
13327
+ this.liveLevelDisplayState = State.READY;
13328
+ this.statusMsg = 'Recording file could not be loaded: ' + err;
13313
13329
  this.statusAlertType = 'error';
13314
13330
  }
13315
- if (fabDh) {
13316
- // this.displayAudioClip could have been changed meanwhile, but the recorder unsubcribes before changing the item, therefore there should be no risk to set to wrong item
13317
- this.displayAudioClip = new AudioClip(fabDh);
13318
- }
13319
- this.controlAudioPlayer.audioClip = this.displayAudioClip;
13320
- this.showRecording();
13321
- }, error: err => {
13322
- console.error("Could not load recording file from server: " + err);
13323
- this.liveLevelDisplayState = State.READY;
13324
- this.statusMsg = 'Recording file could not be loaded: ' + err;
13325
- this.statusAlertType = 'error';
13326
- }
13327
- });
13331
+ });
13332
+ }
13333
+ }
13334
+ else {
13335
+ this.statusMsg = 'Recording file could not be decoded. Audio context unavailable.';
13336
+ this.statusAlertType = 'error';
13328
13337
  }
13329
- }
13330
- else {
13331
- this.statusMsg = 'Recording file could not be decoded. Audio context unavailable.';
13332
- this.statusAlertType = 'error';
13333
13338
  }
13334
13339
  }
13335
13340
  }
@@ -13369,7 +13374,7 @@ class SessionManager extends BasicRecorder {
13369
13374
  this.applyPrompt();
13370
13375
  }
13371
13376
  if (isNonrecording) {
13372
- this.displayRecFile = null;
13377
+ this.updateDisplayRecFile(null);
13373
13378
  this.displayRecFileVersion = 0;
13374
13379
  this.startStopSignalState = 4 /* OFF */;
13375
13380
  }
@@ -13384,11 +13389,11 @@ class SessionManager extends BasicRecorder {
13384
13389
  if (availRecfiles > 0) {
13385
13390
  let rfVers = availRecfiles - 1;
13386
13391
  recentRecFile = it.recs[rfVers];
13387
- this.displayRecFile = recentRecFile;
13392
+ this.updateDisplayRecFile(recentRecFile, !temporary);
13388
13393
  this.displayRecFileVersion = rfVers;
13389
13394
  }
13390
13395
  else {
13391
- this.displayRecFile = null;
13396
+ this.updateDisplayRecFile(null);
13392
13397
  this.displayRecFileVersion = 0;
13393
13398
  }
13394
13399
  }
@@ -13675,7 +13680,7 @@ class SessionManager extends BasicRecorder {
13675
13680
  const sr = this.ac.currentSampleRate;
13676
13681
  const chFl = sr * RecordingService.DEFAULT_CHUNKED_DOWNLOAD_SECONDS;
13677
13682
  //console.debug("stopped(): rfID: "+this._recordingFile?.recordingFileId+", net ab url: " + burl+", frames: "+this.ac.framesRecorded+", sample rate: "+sr);
13678
- let netAb = new NetAudioBuffer(this.ac.context, this.recFileService, burl, this.ac.channelCount, sr, chFl, this.ac.framesRecorded, rUUID, sr);
13683
+ let netAb = new NetAudioBuffer(this.ac.context, this.recFileService, burl, this.ac.channelCount, sr, chFl, this.ac.framesRecorded, rUUID, chFl);
13679
13684
  as = netAb;
13680
13685
  if (this.uploadSet) {
13681
13686
  //let rp=new ReadyProvider();
@@ -13722,7 +13727,7 @@ class SessionManager extends BasicRecorder {
13722
13727
  const sr = this.ac.currentSampleRate;
13723
13728
  const chFl = sr * RecordingService.DEFAULT_CHUNKED_DOWNLOAD_SECONDS;
13724
13729
  //console.debug("stopped(): rfID: "+this._recordingFile?.recordingFileId+", net ab url: " + burl+", frames: "+this.ac.framesRecorded+", sample rate: "+sr);
13725
- const netAb = new NetAudioBuffer(this.ac.context, this.recFileService, burl, this.ac.channelCount, sr, chFl, this.ac.framesRecorded, rUUID, sr);
13730
+ const netAb = new NetAudioBuffer(this.ac.context, this.recFileService, burl, this.ac.channelCount, sr, chFl, this.ac.framesRecorded, rUUID, chFl);
13726
13731
  as = netAb;
13727
13732
  if (this.uploadSet) {
13728
13733
  this.uploadSet.onDone = (uploadSet) => {
@@ -16925,7 +16930,7 @@ class AudioRecorder extends BasicRecorder {
16925
16930
  const sr = this.ac.currentSampleRate;
16926
16931
  const chFl = sr * RecordingService.DEFAULT_CHUNKED_DOWNLOAD_SECONDS;
16927
16932
  //console.debug("stopped(): rfID: "+this._recordingFile?.recordingFileId+", net ab url: " + burl+", frames: "+this.ac.framesRecorded+", sample rate: "+sr);
16928
- let netAs = new NetAudioBuffer(this.ac.context, this.recFileService, burl, this.ac.channelCount, sr, chFl, this.ac.framesRecorded, rUUID, sr);
16933
+ let netAs = new NetAudioBuffer(this.ac.context, this.recFileService, burl, this.ac.channelCount, sr, chFl, this.ac.framesRecorded, rUUID, chFl);
16929
16934
  as = netAs;
16930
16935
  if (this.uploadSet) {
16931
16936
  this.uploadSet.onDone = (uploadSet) => {
@@ -16972,7 +16977,7 @@ class AudioRecorder extends BasicRecorder {
16972
16977
  const sr = this.ac.currentSampleRate;
16973
16978
  const chFl = sr * RecordingService.DEFAULT_CHUNKED_DOWNLOAD_SECONDS;
16974
16979
  //console.debug("stopped(): rfID: "+this._recordingFile?.recordingFileId+", net ab url: " + burl+", frames: "+this.ac.framesRecorded+", sample rate: "+sr);
16975
- let netAs = new NetAudioBuffer(this.ac.context, this.recFileService, burl, this.ac.channelCount, sr, chFl, this.ac.framesRecorded, rUUID, sr);
16980
+ let netAs = new NetAudioBuffer(this.ac.context, this.recFileService, burl, this.ac.channelCount, sr, chFl, this.ac.framesRecorded, rUUID, chFl);
16976
16981
  as = netAs;
16977
16982
  if (this.uploadSet) {
16978
16983
  this.uploadSet.onDone = (uploadSet) => {
@@ -17437,7 +17442,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
17437
17442
  }]
17438
17443
  }] });
17439
17444
 
17440
- const VERSION = '3.3.0';
17445
+ const VERSION = '3.3.2';
17441
17446
 
17442
17447
  /*
17443
17448
  * Public API Surface of speechrecorderng