Индикатор загрузки при работе с компонентом WaveSurfer (Angular)

Использую компонент ngx-spinner (для отображения индикатора загрузки) и компонент WaveSurfer в Angular проекте.

Появились некоторые проблемы с индикатором загрузки.

Первая проблема:

Когда загружаю аудиофайл и запускаю индикатор загрузки (метод spinner.show) - Индикатор отображается. После этого в отладчике вижу, что есть вход в событие this.wavesurfer.on 'ready' , но Индикатор продолжает крутиться. Индикатор спрячется после того, как кликнуть по экрану мышкой или свернуть окно и снова открыть.

import WaveSurfer from 'wavesurfer.js';
import { NgxSpinnerService } from "ngx-spinner";

@Component({
  selector: 'app-player',
  templateUrl: './player.component.html',
  styleUrls: ['./player.component.scss']
})
export class PlayerComponent implements OnInit, OnDestroy {

constructor(private spinner: NgxSpinnerService) { }

...

listenwav(url:string){
  this.spinner.show();
  this.wavesurfer.load(url);
}

this.wavesurfer.on('ready', () => {
  this.spinner.hide();  
  this.wavesurfer.enableDragSelection({});      
  this.loadRegions(this.currentRec.markers);
  this.loadCloseButton();   
  this.wavesurfer.playPause();
});
...........
}

Вторая проблема: Использую инициализацию плагина для спектрограммы динамически. Индикатор начинает отображаться уже после того как спектрограмма загрузилась. Это может занять пару секунд (в зависимости от размера аудиофайла). Прячется индикатор также как и в 1м варианте (после клика и тп)

clickBtn(){
  this.spinner.show();
  this.initAndLoadSpectrogram();
  this.spinner.hide();
}

initAndLoadSpectrogram() {    
    this.wavesurfer.stop();
    this.wavesurfer.addPlugin(Spectrogram.create({
      container: "#wave-spectrogram",
      labels: true
    }));
    this.wavesurfer.initPlugin('spectrogram');    
    this.wavesurfer.play();
  }

Ответы (0 шт):